sql >> Database >  >> NoSQL >> MongoDB

Wat is het verschil tussen ReplaceOne() en updateOne() in MongoDB?

Met replaceOne() je kunt alleen het hele document vervangen, terwijl updateOne() maakt het mogelijk om velden bij te werken.

Sinds replaceOne() vervangt het hele document - velden in het oude document die niet in het nieuwe staan, gaan verloren. Met updateOne() nieuwe velden kunnen worden toegevoegd zonder de velden in het oude document te verliezen.

Als u bijvoorbeeld het volgende document heeft:

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

Gebruik:

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

resulteert in:

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

Gebruik:

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

resulteert in:

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

Merk op dat met updateOne() u kunt de update-operators op documenten gebruiken.



  1. Verwijzen naar andere documenten per string in plaats van ObjectId

  2. node.js mongodb selecteer document door _id node-mongodb-native

  3. Mongodb-aggregatieraamwerk | Groeperen over meerdere waarden?

  4. Selecteer documenten waarin alle waarden in een matrixveld in een andere matrix voorkomen