Abfrage
- verwendet eine Systemvariable
$$REMOVE
Wenn ein Feld diesen Wert erhält, wird es entfernt - also ist die Bedingung
user.code
, alten Wert beibehalten, wenn nicht"BLOCKED"
,"CANCELLED"
, sonst"$$REMOVE"
das Feld
db.collection.aggregate([
{
"$set": {
"user.code": {
"$cond": [
{
"$in": [
"$user.status",
[
"BLOCKED",
"CANCELLED"
]
]
},
"$$REMOVE",
"$user.code"
]
}
}
}
])
Bearbeiten
Der obige Code überprüft den user.status
aber Sie möchten Code entfernen oder nicht basierend auf user.olderAdress.status
(nach dem Abwickeln)(seine 2 Felder mit gleichem Namensstatus)
Abfrage (fügen Sie dies nach den Phasen hinzu, die Sie bereits haben)
{
"$set": {
"user.code": {
"$cond": [
{
"$in": [
"$user.status",
[
"BLOCKED",
"CANCELLED"
]
]
},
"$$REMOVE",
"$user.code"
]
}
}
}