Pomocí replaceOne() můžete nahradit pouze celý dokument, zatímco updateOne() umožňuje aktualizaci polí.
Od replaceOne() nahradí celý dokument - pole ve starém dokumentu, která nejsou obsažena v novém, budou ztracena. Pomocí updateOne() lze přidat nová pole, aniž by došlo ke ztrátě polí ve starém dokumentu.
Pokud máte například následující dokument:
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key3" : 3333
}
Použití:
replaceOne({"_id" : ObjectId("0123456789abcdef01234567")}, { "my_test_key4" : 4})
výsledkem je:
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key4" : 4.0
}
Použití:
updateOne({"_id" : ObjectId("0123456789abcdef01234567")}, {$set: { "my_test_key4" : 4}})
výsledkem je:
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key3" : 3333.0,
"my_test_key4" : 4.0
}
Všimněte si, že pomocí updateOne() můžete použít operátory aktualizace dokumentů.