Lưu Vs Chèn:
Trong các ví dụ đã cho của bạn, hành vi về cơ bản giống nhau.
save
hoạt động khác nếu nó được truyền với tham số "_id".
Để lưu, Nếu tài liệu chứa _id
, nó sẽ hỗ trợ truy vấn bộ sưu tập trên _id
trường, Nếu không, nó sẽ chèn.
Nếu tài liệu không tồn tại với giá trị _id được chỉ định, phương thức save () thực hiện chèn với các trường được chỉ định trong tài liệu.
Nếu tài liệu tồn tại với giá trị _id được chỉ định, phương thức save () sẽ thực hiện cập nhật, thay thế tất cả trường trong bản ghi hiện có bằng các trường từ tài liệu.
Lưu so với Cập nhật :
update
sửa đổi một tài liệu hiện có phù hợp với các tham số truy vấn của bạn. Nếu không có tài liệu phù hợp như vậy, đó là lúc upsert
có trong hình ảnh.
-
upsert : false
:Sẽ không có gì xảy ra khi không có tài liệu như vậy tồn tại -
upsert : true
:Tài liệu mới được tạo với nội dung tương đương với tham số truy vấn và cập nhật tham số
save
:Không cho phép bất kỳ tham số truy vấn nào. if _id
tồn tại và có một tài liệu phù hợp với cùng một _id
, nó thay thế nó. Khi không có _id được chỉ định / không có tài liệu phù hợp, nó sẽ chèn tài liệu đó như một tài liệu mới.