sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb-uppdateringsoperation inuti subarray

Du vill inte använda $set här, men $pull (se dokument ), och medan du kunde använd $elemMatch för att ytterligare specificera din fråga behöver du inte göra det.

Följande skulle dra alla aviseringar om vän med {"sender": "safari"} från underarrayen av dokument som matchar {"username": "amitverma"}

db.yourcollection.update({"username": "amitverma"}, { 
  $pull: {"notifications.notifications_add_friend": {"sender": "safari"}}
})

När det gäller din kommentar, skulle du uppdatera ett visst element använd $set i kombination med $elemMatch och positionsoperatören $ . För ditt exempel, något som:

db.yourcollection.update({
  "username": "amitverma", 
  "notifications.notifications_add_friend": {
    $elemMatch: {"sender": "safari"}
  }
}, {
  $set: {
    "notifications.notifications_add_friend.$.isUnread": false
  }
})



  1. TypeError:sökvägen måste vara en sträng eller buffert MEAN-stack

  2. MongoDb stängs av med kod 100

  3. C# MongoDB.Driver GetServer är borta, vad nu?

  4. MongoDB:är läser/skriver till databasen samtidigt?