No quieres usar $set
aquí, pero $pull
(ver documentos
), y mientras podrías usa $elemMatch
para especificar más su consulta, no es necesario.
Lo siguiente extraería todas las notificaciones de agregar amigos con {"sender": "safari"}
de la submatriz de documentos que coinciden con {"username": "amitverma"}
db.yourcollection.update({"username": "amitverma"}, {
$pull: {"notifications.notifications_add_friend": {"sender": "safari"}}
})
En cuanto a su comentario, si quisiera actualizar un elemento en particular, haría usa $set
en combinación con $elemMatch
y el operador posicional $
. Para tu ejemplo, algo como:
db.yourcollection.update({
"username": "amitverma",
"notifications.notifications_add_friend": {
$elemMatch: {"sender": "safari"}
}
}, {
$set: {
"notifications.notifications_add_friend.$.isUnread": false
}
})