Z replaceOne()
możesz zastąpić tylko cały dokument, podczas gdy updateOne()
pozwala na aktualizację pól.
Od replaceOne()
zastępuje cały dokument - pola w starym dokumencie nie zawarte w nowym zostaną utracone. Z updateOne()
nowe pola można dodawać bez utraty pól w starym dokumencie.
Na przykład, jeśli masz następujący dokument:
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key3" : 3333
}
Używając:
replaceOne({"_id" : ObjectId("0123456789abcdef01234567")}, { "my_test_key4" : 4})
wyniki w:
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key4" : 4.0
}
Używając:
updateOne({"_id" : ObjectId("0123456789abcdef01234567")}, {$set: { "my_test_key4" : 4}})
wyniki w:
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key3" : 3333.0,
"my_test_key4" : 4.0
}
Zauważ, że z updateOne()
możesz użyć operatorów aktualizacji na dokumentach.