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
}
})