与 MySQL 不同的是 MongoDB 会自动创建数据库和集合,所以使用前我们不需要手动去创建。
插入数据
以下实例我们连接数据库 runoob 的 exampleCollection 表,并插入一条数据条数据,使用 insertOne():
插入一条数据
const { MongoClient } = require('mongodb'); async function main() { // MongoDB 连接 URI const uri = "mongodb://localhost:27017"; // 请根据你的 MongoDB 服务器地址进行修改 // 创建一个新的 MongoClient const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true }); try { // 连接到 MongoDB 服务器 await client.connect(); console.log("成功连接到服务器"); // 指定数据库 const database = client.db('runoob'); // 使用 createCollection 方法创建集合 const collectionName = 'exampleCollection'; await database.createCollection(collectionName); console.log(`集合 ${collectionName} 创建成功`); // 获取集合 const collection = database.collection(collectionName); // 创建一个新文档 const doc = { name: "Alice", age: 25, address: "Wonderland" }; // 插入文档到集合 const result = await collection.insertOne(doc); console.log(`新文档已创建,ID 为: ${result.insertedId}`); } finally { // 确保在完成后关闭连接 await client.close(); }} main().catch(console.error);
执行以下命令输出就结果为:
成功连接到服务器
集合 exampleCollection 创建成功
新文档已创建,ID 为: 6678e1d1f9503dc2e0e2a20b
从输出结果来看,数据已插入成功。
我们也可以打开 MongoDB 的客户端查看数据,如:
> show dbs
runoob 0.000GB # 创建了 runoob 数据库
> use runoob # 切换到 runoob 数据库
runoob> show tables
exampleCollection # 创建了 exampleCollection 集合(数据表)
# 自动创建了 site 集合(数据表)
runoob> db.exampleCollection.find()
[
{
_id: ObjectId('6678e1d1f9503dc2e0e2a20b'),
name: 'Alice',
age: 25,
address: 'Wonderland'
}
]
如果要插入多条数据可以使用 insertMany():
插入多条数据
const { MongoClient } = require('mongodb'); async function main() { // MongoDB 连接 URI const uri = "mongodb://localhost:27017"; // 请根据你的 MongoDB 服务器地址进行修改 // 创建一个新的 MongoClient const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true }); try { // 连接到 MongoDB 服务器 await client.connect(); console.log("成功连接到服务器"); // 指定数据库 const database = client.db('runoob'); // 使用 createCollection 方法创建集合 const collectionName = 'exampleCollection'; await database.createCollection(collectionName); console.log(`集合 ${collectionName} 创建成功`); // 获取集合 const collection = database.collection(collectionName); // 创建多个新文档 const docs = [ { name: "Alice", age: 25, address: "Wonderland" }, { name: "Bob", age: 30, address: "Builderland" }, { name: "Charlie", age: 35, address: "Chocolate Factory" } ]; // 插入多个文档到集合 const result = await collection.insertMany(docs); console.log(`${result.insertedCount} 个新文档已创建,ID 为:`); Object.keys(result.insertedIds).forEach((key, index) => { console.log(`文档 ${index + 1}: ${result.insertedIds[key]}`); }); } finally { // 确保在完成后关闭连接 await client.close(); }} main().catch(console.error);
执行输出结果为:
成功连接到服务器
集合 exampleCollection 创建成功
3 个新文档已创建,ID 为:
文档 1: 6678e30e80ac30e5e689f13a
文档 2: 6678e30e80ac30e5e689f13b
文档 3: 6678e30e80ac30e5e689f13c