sql >> Database >  >> NoSQL >> MongoDB

Mongodb-updatebewerking binnen subarray

Je wilt $set niet gebruiken hier, maar $pull (zie documenten ), en terwijl je kon gebruik $elemMatch om uw vraag verder te specificeren, hoeft u dit niet te doen.

Het volgende zou alle meldingen van vrienden toevoegen met {"sender": "safari"} uit de subreeks van documenten die overeenkomen met {"username": "amitverma"}

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

Wat betreft uw opmerking, als u een bepaald element wilt bijwerken, zou gebruik $set in combinatie met $elemMatch en de positionele operator $ . Voor jouw voorbeeld, zoiets als:

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



  1. Hoe haal ik de aangemaakte datum uit een Mongo ObjectID

  2. MongoDB:unieke sleutel in ingesloten document

  3. $ projectie in mongoDB findOneAndUpdate()

  4. BsonSerializationException bij het serialiseren van een Dictionary<DateTime,T> naar BSON