Consulta
- usa uma variável de sistema
$$REMOVE
se um campo obtiver esse valor, será removido - então a condição é
user.code
, mantém o valor antigo se não"BLOCKED"
,"CANCELLED"
, senão"$$REMOVE"
o campo
Teste o código aqui
db.collection.aggregate([
{
"$set": {
"user.code": {
"$cond": [
{
"$in": [
"$user.status",
[
"BLOCKED",
"CANCELLED"
]
]
},
"$$REMOVE",
"$user.code"
]
}
}
}
])
Editar
O código acima verifica o
user.status
mas você deseja remover o código ou não com base no user.olderAdress.status
(após o desenrolar) (seus 2 campos com o mesmo status de nome) Consulta (adicione isso após os estágios que você já possui)
Código de teste
{
"$set": {
"user.code": {
"$cond": [
{
"$in": [
"$user.status",
[
"BLOCKED",
"CANCELLED"
]
]
},
"$$REMOVE",
"$user.code"
]
}
}
}