MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Was ist der Unterschied zwischen replaceOne() und updateOne() in MongoDB?

Mit replaceOne() Sie können nur das gesamte Dokument ersetzen, während updateOne() ermöglicht das Aktualisieren von Feldern.

Seit replaceOne() ersetzt das gesamte Dokument - Felder im alten Dokument, die im neuen nicht enthalten sind, gehen verloren. Mit updateOne() neue Felder können hinzugefügt werden, ohne dass die Felder im alten Dokument verloren gehen.

Zum Beispiel, wenn Sie das folgende Dokument haben:

{
   "_id" : ObjectId("0123456789abcdef01234567"),
   "my_test_key3" : 3333
}

Verwendung:

replaceOne({"_id" : ObjectId("0123456789abcdef01234567")}, { "my_test_key4" : 4})

ergibt:

{
   "_id" : ObjectId("0123456789abcdef01234567"),
   "my_test_key4" : 4.0
}

Verwendung:

updateOne({"_id" : ObjectId("0123456789abcdef01234567")}, {$set: { "my_test_key4" : 4}})

ergibt:

{
   "_id" : ObjectId("0123456789abcdef01234567"),
   "my_test_key3" : 3333.0,
   "my_test_key4" : 4.0
}

Beachten Sie das mit updateOne() Sie können die Aktualisierungsoperatoren für Dokumente verwenden.