Dengan replaceOne()
anda hanya dapat mengganti seluruh dokumen, sementara updateOne()
memungkinkan untuk memperbarui bidang.
Sejak replaceOne()
menggantikan seluruh dokumen - kolom di dokumen lama yang tidak ada di dokumen baru akan hilang. Dengan updateOne()
bidang baru dapat ditambahkan tanpa kehilangan bidang dalam dokumen lama.
Misalnya jika Anda memiliki dokumen berikut:
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key3" : 3333
}
Menggunakan:
replaceOne({"_id" : ObjectId("0123456789abcdef01234567")}, { "my_test_key4" : 4})
menghasilkan:
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key4" : 4.0
}
Menggunakan:
updateOne({"_id" : ObjectId("0123456789abcdef01234567")}, {$set: { "my_test_key4" : 4}})
menghasilkan:
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key3" : 3333.0,
"my_test_key4" : 4.0
}
Perhatikan bahwa dengan updateOne()
Anda dapat menggunakan operator pembaruan pada dokumen.