Truy vấn
- sử dụng một biến hệ thống
$$REMOVEnế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"
]
}
}
}