Você não quer usar
$set
aqui, mas $pull
(consulte a documentação
), e enquanto você poderia use $elemMatch
para especificar melhor sua consulta, você não precisa. O seguinte puxaria todas as notificações de adição de amigos com
{"sender": "safari"}
da submatriz de documentos correspondentes a {"username": "amitverma"}
db.yourcollection.update({"username": "amitverma"}, {
$pull: {"notifications.notifications_add_friend": {"sender": "safari"}}
})
Quanto ao seu comentário, se você quiser atualizar um elemento específico, faria use
$set
em combinação com $elemMatch
e o operador posicional $
. Para o seu exemplo, algo como:db.yourcollection.update({
"username": "amitverma",
"notifications.notifications_add_friend": {
$elemMatch: {"sender": "safari"}
}
}, {
$set: {
"notifications.notifications_add_friend.$.isUnread": false
}
})