Заявка
- използва системна променлива
$$REMOVE
ако дадено поле получи тази стойност, то се премахва - така че условието е
user.code
, запазете старата стойност, ако не е"BLOCKED"
,"CANCELLED"
, иначе"$$REMOVE"
полето
db.collection.aggregate([
{
"$set": {
"user.code": {
"$cond": [
{
"$in": [
"$user.status",
[
"BLOCKED",
"CANCELLED"
]
]
},
"$$REMOVE",
"$user.code"
]
}
}
}
])
Редактиране
Горният код проверява user.status
но искате да премахнете кода или не въз основа на user.olderAdress.status
(след размотаването) (двете му полета с едно и също име)
Заявка (добавете това след етапите, които вече имате)
{
"$set": {
"user.code": {
"$cond": [
{
"$in": [
"$user.status",
[
"BLOCKED",
"CANCELLED"
]
]
},
"$$REMOVE",
"$user.code"
]
}
}
}