更新多个文档
此版本的文档已存档,不再提供支持。 查看最新文档,了解如何升级您的 Node.js 驱动程序版本。
您可以使用.updateMany()集合 更新多个文档方法。 updateMany()
方法接受过滤文档和更新文档。 如果查询与集合中的文档匹配,则该方法会将更新文档中的更新应用于匹配文档的字段和值。 更新文档需要更新操作符来修改文档中的字段。
您可以在 updateMany()
方法的第三个参数中传递的 options
对象中指定其他选项。有关更多详细信息,请参阅 updateMany() API 文档。
例子
注意
可以使用此示例连接到 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 const database = client.db("sample_mflix"); 11 const movies = database.collection("movies"); 12 13 // create a filter to update all movies with a 'G' rating 14 const filter = { rated: "G" }; 15 16 // increment every document matching the filter with 2 more comments 17 const updateDoc = { 18 $set: { 19 random_review: `After viewing I am ${ 20 100 * Math.random() 21 }% more satisfied with life.`, 22 }, 23 }; 24 const result = await movies.updateMany(filter, updateDoc); 25 console.log(`Updated ${result.modifiedCount} documents`); 26 } finally { 27 await client.close(); 28 } 29 } 30 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 enum Rating { 9 G = "G", 10 PG = "PG", 11 PG_13 = "PG-13", 12 R = "R", 13 NR = "NOT RATED", 14 } 15 16 interface Movie { 17 rated: Rating; 18 random_review?: string; 19 } 20 21 async function run() { 22 try { 23 const database = client.db("sample_mflix"); 24 const movies = database.collection<Movie>("movies"); 25 const result = await movies.updateMany( 26 { rated: Rating.G }, 27 { 28 $set: { 29 random_review: `After viewing I am ${ 30 100 * Math.random() 31 }% more satisfied with life.`, 32 }, 33 } 34 ); 35 console.log(`Updated ${result.modifiedCount} documents`); 36 } finally { 37 await client.close(); 38 } 39 } 40 run().catch(console.dir);
运行前一示例应能看到以下输出:
Updated 477 documents