Với replaceOne()
bạn chỉ có thể thay thế toàn bộ tài liệu, trong khi updateOne()
cho phép cập nhật các trường.
Kể từ replaceOne()
thay thế toàn bộ tài liệu - các trường trong tài liệu cũ không có trong tài liệu mới sẽ bị mất. Với updateOne()
có thể thêm các trường mới mà không làm mất các trường trong tài liệu cũ.
Ví dụ:nếu bạn có tài liệu sau:
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key3" : 3333
}
Sử dụng:
replaceOne({"_id" : ObjectId("0123456789abcdef01234567")}, { "my_test_key4" : 4})
kết quả là:
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key4" : 4.0
}
Sử dụng:
updateOne({"_id" : ObjectId("0123456789abcdef01234567")}, {$set: { "my_test_key4" : 4}})
kết quả là:
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key3" : 3333.0,
"my_test_key4" : 4.0
}
Lưu ý rằng với updateOne()
bạn có thể sử dụng toán tử cập nhật trên tài liệu.