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
}
})