Заявка
- използва системна променлива
$$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"
]
}
}
}