Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Cập nhật nhanh nhất trong MongoDB: update() hay save()?

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ỉ định
  • save() 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ũ.