MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Quelle est la différence entre replaceOne() et updateOne() dans MongoDB ?

Avec replaceOne() vous ne pouvez remplacer que le document entier, tandis que updateOne() permet de mettre à jour les champs.

Depuis replaceOne() remplace tout le document - les champs de l'ancien document non contenus dans le nouveau seront perdus. Avec updateOne() de nouveaux champs peuvent être ajoutés sans perdre les champs de l'ancien document.

Par exemple si vous avez le document suivant :

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

Utilisation :

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

donne :

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

Utilisation :

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

donne :

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

Notez qu'avec updateOne() vous pouvez utiliser les opérateurs de mise à jour sur les documents.