Zapytanie
- używa zmiennej systemowej
$$REMOVE
jeśli pole otrzyma tę wartość, zostanie usunięte - więc warunek to
user.code
, zachowaj starą wartość, jeśli nie"BLOCKED"
,"CANCELLED"
, w przeciwnym razie"$$REMOVE"
pole
db.collection.aggregate([
{
"$set": {
"user.code": {
"$cond": [
{
"$in": [
"$user.status",
[
"BLOCKED",
"CANCELLED"
]
]
},
"$$REMOVE",
"$user.code"
]
}
}
}
])
Edytuj
Powyższy kod sprawdza user.status
ale chcesz usunąć kod, czy nie w oparciu o user.olderAdress.status
(po odprężeniu)(jego 2 pola o tym samym statusie nazwy)
Zapytanie (dodaj to po etapach, które już masz)
{
"$set": {
"user.code": {
"$cond": [
{
"$in": [
"$user.status",
[
"BLOCKED",
"CANCELLED"
]
]
},
"$$REMOVE",
"$user.code"
]
}
}
}