Truy vấn
- sử dụng một biến hệ thống
$$REMOVE
nếu một trường nhận được giá trị này thì trường đó sẽ bị xóa - vì vậy điều kiện là
user.code
, giữ nguyên giá trị cũ nếu không"BLOCKED"
,"CANCELLED"
, khác"$$REMOVE"
lĩnh vực
db.collection.aggregate([
{
"$set": {
"user.code": {
"$cond": [
{
"$in": [
"$user.status",
[
"BLOCKED",
"CANCELLED"
]
]
},
"$$REMOVE",
"$user.code"
]
}
}
}
])
Chỉnh sửa
Đoạn mã trên kiểm tra user.status
nhưng bạn có muốn xóa mã hay không dựa trên user.olderAdress.status
(sau khi thư giãn) (2 trường có trạng thái cùng tên)
Truy vấn (thêm điều này sau các giai đoạn bạn đã có)
{
"$set": {
"user.code": {
"$cond": [
{
"$in": [
"$user.status",
[
"BLOCKED",
"CANCELLED"
]
]
},
"$$REMOVE",
"$user.code"
]
}
}
}