插入多个文档
您可以使用以下方法插入多个文档:collection.insertMany() 方法。以下是insertMany()
方法接受一个文档数组,用于插入指定的集合中。
您可以在 options
对象中指定更多选项,该对象作为 insertMany()
方法的第二个参数传递。指定 ordered:true
可以防止在数组中前一个文档插入失败时插入剩余的文档。
为您的 insertMany()
操作指定错误的参数可能会导致问题。尝试插入违反唯一索引规则的字段的值会导致 duplicate key error
。
示例
注意
您可以使用此示例连接到 MongoDB 的一个实例并交互处理包含示例数据的数据库。有关连接到您的 MongoDB 实例和加载数据集的更多信息,请参阅使用示例指南.
1 import { MongoClient } from "mongodb"; 2 3 // Replace the uri string with your MongoDB deployment's connection string. 4 const uri = "<connection string uri>"; 5 6 const client = new MongoClient(uri); 7 8 async function run() { 9 try { 10 11 // Get the database and collection on which to run the operation 12 const database = client.db("insertDB"); 13 const foods = database.collection("foods"); 14 15 // Create an array of documents to insert 16 const docs = [ 17 { name: "cake", healthy: false }, 18 { name: "lettuce", healthy: true }, 19 { name: "donut", healthy: false } 20 ]; 21 22 // Prevent additional documents from being inserted if one fails 23 const options = { ordered: true }; 24 25 // Execute insert operation 26 const result = await foods.insertMany(docs, options); 27 28 // Print result 29 console.log(`${result.insertedCount} documents were inserted`); 30 } finally { 31 await client.close(); 32 } 33 } 34 run().catch(console.dir);
1 import { MongoClient } from "mongodb"; 2 3 // Replace the uri string with your MongoDB deployment's connection string. 4 const uri = "<connection string uri>"; 5 6 const client = new MongoClient(uri); 7 8 interface Food { 9 name: string; 10 healthy: boolean; 11 } 12 13 async function run() { 14 try { 15 const database = client.db("insertDB"); 16 // Specifying a schema is optional, but it enables type hints on 17 // finds and inserts 18 const foods = database.collection<Food>("foods"); 19 20 const result = await foods.insertMany( 21 [ 22 { name: "cake", healthy: false }, 23 { name: "lettuce", healthy: true }, 24 { name: "donut", healthy: false }, 25 ], 26 { ordered: true } 27 ); 28 console.log(`${result.insertedCount} documents were inserted`); 29 } finally { 30 await client.close(); 31 } 32 } 33 run().catch(console.dir);
运行前面的示例,您将看到以下输出
3 documents were inserted