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