Не искате да използвате $set
тук, но $pull
(вижте документи
), и докато можехте използвайте $elemMatch
за да уточните допълнително заявката си, не е необходимо.
Следното би изтеглило всички известия за добавяне на приятели с {"sender": "safari"}
от подмасива от документи, съответстващи на {"username": "amitverma"}
db.yourcollection.update({"username": "amitverma"}, {
$pull: {"notifications.notifications_add_friend": {"sender": "safari"}}
})
Що се отнася до вашия коментар, ако искате да актуализирате определен елемент, ще го направите използвайте $set
в комбинация с $elemMatch
и позиционен оператор $
. За вашия пример, нещо като:
db.yourcollection.update({
"username": "amitverma",
"notifications.notifications_add_friend": {
$elemMatch: {"sender": "safari"}
}
}, {
$set: {
"notifications.notifications_add_friend.$.isUnread": false
}
})