MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Qual è la differenza tra replaceOne() e updateOne() in MongoDB?

Con replaceOne() puoi sostituire solo l'intero documento, mentre updateOne() consente di aggiornare i campi.

Poiché replaceOne() sostituisce l'intero documento - i campi del vecchio documento non contenuti nel nuovo andranno persi. Con updateOne() nuovi campi possono essere aggiunti senza perdere i campi nel vecchio documento.

Ad esempio se hai il seguente documento:

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

Usando:

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

risulta in:

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

Usando:

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

risulta in:

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

Nota che con updateOne() puoi utilizzare gli operatori di aggiornamento sui documenti.