Nechcete použít $set
zde, ale $pull
(viz dokumenty
), a dokud můžete použijte $elemMatch
pro další upřesnění vašeho dotazu nemusíte.
Následující by stáhlo všechna oznámení o přidání přátel pomocí {"sender": "safari"}
z podpole dokumentů odpovídajících {"username": "amitverma"}
db.yourcollection.update({"username": "amitverma"}, {
$pull: {"notifications.notifications_add_friend": {"sender": "safari"}}
})
Pokud jde o váš komentář, pokud byste chtěli aktualizovat konkrétní prvek, byli byste použijte $set
v kombinaci s $elemMatch
a poziční operátor $
. Například něco jako:
db.yourcollection.update({
"username": "amitverma",
"notifications.notifications_add_friend": {
$elemMatch: {"sender": "safari"}
}
}, {
$set: {
"notifications.notifications_add_friend.$.isUnread": false
}
})