Interroga
- usa una variabile di sistema
$$REMOVE
se un campo ottiene questo valore viene rimosso - quindi la condizione è
user.code
, mantieni il vecchio valore se non"BLOCKED"
,"CANCELLED"
, altrimenti"$$REMOVE"
il campo
db.collection.aggregate([
{
"$set": {
"user.code": {
"$cond": [
{
"$in": [
"$user.status",
[
"BLOCKED",
"CANCELLED"
]
]
},
"$$REMOVE",
"$user.code"
]
}
}
}
])
Modifica
Il codice sopra controlla user.status
ma vuoi rimuovere il codice o meno in base a user.olderAdress.status
(dopo lo svolgimento)(i suoi 2 campi con lo stesso nome)
Query (aggiungi questo dopo le fasi che hai già)
{
"$set": {
"user.code": {
"$cond": [
{
"$in": [
"$user.status",
[
"BLOCKED",
"CANCELLED"
]
]
},
"$$REMOVE",
"$user.code"
]
}
}
}