So sánh hiệu năng: update() vs save()
Kết luận: update() nhanh hơn save() vì:
update()chỉ sửa đổi các trường được chỉ địnhsave()thay thế toàn bộ document (tương tự replace)update()hỗ trợ các toán tử atomic ($set, $inc, $push...)
Ví dụ update()
> db.demo320.insertOne({"Name": "Chris"});
> db.demo320.insertOne({"Name": "Robert"});
> db.demo320.insertOne({"Name": "Mike"});
> db.demo320.insertOne({"Name": "Sam"});
Cập nhật "Mike" thành "Bob":
> db.demo320.update(
{ Name: "Mike" },
{ $set: { Name: "Bob" } }
);
Kết quả: WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
Kiểm tra
> db.demo320.find();
{ "_id": ..., "Name": "Chris" }
{ "_id": ..., "Name": "Robert" }
{ "_id": ..., "Name": "Bob" } <-- Đã cập nhật
{ "_id": ..., "Name": "Sam" }
Khuyến nghị: Luôn dùng updateOne(), updateMany() hoặc findOneAndUpdate() (phiên bản mới) thay vì update() cũ.