sql >> Databasteknik >  >> NoSQL >> MongoDB

Vad är skillnaden mellan replaceOne() och updateOne() i MongoDB?

Med replaceOne() du kan bara ersätta hela dokumentet medan updateOne() tillåter uppdatering av fält.

Sedan replaceOne() ersätter hela dokumentet - fält i det gamla dokumentet som inte finns i det nya kommer att gå förlorade. Med updateOne() nya fält kan läggas till utan att förlora fälten i det gamla dokumentet.

Till exempel om du har följande dokument:

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

Använder:

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

resulterar i:

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

Använder:

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

resulterar i:

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

Observera att med updateOne() du kan använda uppdateringsoperatorerna på dokument.



  1. Mongoose - använder Populate på en array av ObjectId

  2. lagra data i redis genom cron jobb

  3. MongoDB $dateFromParts

  4. Mongoose findOneAndUpdate och upsert returnerar inga fel, inga dokument påverkade