Bạn không muốn sử dụng $set
ở đây, nhưng $pull
( xem tài liệu
), và trong khi bạn có thể sử dụng $elemMatch
để chỉ rõ thêm truy vấn của bạn, bạn không cần phải.
Phần sau sẽ kéo tất cả thêm thông báo kết bạn với {"sender": "safari"}
từ mảng phụ của tài liệu khớp với {"username": "amitverma"}
db.yourcollection.update({"username": "amitverma"}, {
$pull: {"notifications.notifications_add_friend": {"sender": "safari"}}
})
Đối với nhận xét của bạn, nếu bạn muốn cập nhật một yếu tố cụ thể, bạn sẽ sử dụng $set
kết hợp với $elemMatch
và toán tử vị trí $
. Đối với ví dụ của bạn, một cái gì đó như:
db.yourcollection.update({
"username": "amitverma",
"notifications.notifications_add_friend": {
$elemMatch: {"sender": "safari"}
}
}, {
$set: {
"notifications.notifications_add_friend.$.isUnread": false
}
})