Để cập nhật nhiều tài liệu khớp cùng một điều kiện, sử dụng tùy chọn multi: true (trong update() cũ) hoặc phương thức updateMany() (MongoDB 3.2+). Mặc định multi: false chỉ cập nhật tài liệu đầu tiên tìm thấy.
Dữ liệu mẫu
> db.demo312.insertOne({"FirstName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ce16f8647eb59e56204a") }
> db.demo312.insertOne({"FirstName":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ce19f8647eb59e56204b") }
> db.demo312.insertOne({"FirstName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ce1cf8647eb59e56204c") }
> db.demo312.insertOne({"FirstName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ce20f8647eb59e56204d") }
> db.demo312.insertOne({"FirstName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ce22f8647eb59e56204e") }
Xem dữ liệu
> db.demo312.find();
{ "_id" : ObjectId("5e50ce16f8647eb59e56204a"), "FirstName" : "Robert" }
{ "_id" : ObjectId("5e50ce19f8647eb59e56204b"), "FirstName" : "Bob" }
{ "_id" : ObjectId("5e50ce1cf8647eb59e56204c"), "FirstName" : "Robert" }
{ "_id" : ObjectId("5e50ce20f8647eb59e56204d"), "FirstName" : "David" }
{ "_id" : ObjectId("5e50ce22f8647eb59e56204e"), "FirstName" : "Robert" }
Cập nhật tất cả FirstName="Robert" thành "Sam"
> db.demo312.update({"FirstName":"Robert"},{$set:{"FirstName":"Sam"}},{multi:true});
WriteResult({ "nMatched" : 3, "nUpserted" : 0, "nModified" : 3 })
Kết quả
> db.demo312.find();
{ "_id" : ObjectId("5e50ce16f8647eb59e56204a"), "FirstName" : "Sam" }
{ "_id" : ObjectId("5e50ce19f8647eb59e56204b"), "FirstName" : "Bob" }
{ "_id" : ObjectId("5e50ce1cf8647eb59e56204c"), "FirstName" : "Sam" }
{ "_id" : ObjectId("5e50ce20f8647eb59e56204d"), "FirstName" : "David" }
{ "_id" : ObjectId("5e50ce22f8647eb59e56204e"), "FirstName" : "Sam" }
Hiện đại hóa: Thay vì update(..., {multi:true}), hãy dùng db.demo312.updateMany({"FirstName":"Robert"}, {$set:{"FirstName":"Sam"}}). Cú pháp mới rõ ràng, nhất quán và được khuyến nghị cho các driver mới.