$exists
nieobsługiwane w aggregate
zapytanie MongoDB . Więc w aggregate
zapytanie zamiast $exists
może użyć $ifNull
.
składnia:
{ $ifNull: [ <expression>, <replacement-expression-if-null> ] }
Aktualizacja:
aby uzyskać b
wartość jako true
lub false
może spróbować tego zapytania
db.test.aggregate([
{
$project: {
b: {
$cond: [
{$ifNull: ['$b', false]}, // if
true, // then
false // else
]
}
}
}
])
Wyjaśnienie:
b = $cond: [ 'if condition satisfied', 'then true', 'else false' ];
gdzie condition = {$ifNull: ['$b', false]}
Tutaj, jeśli $b
nie istnieje to condition = false
w przeciwnym razie condition = true
.
więc jeśli condition = true
następnie zwróć a następnie wynik to znaczy b = true
jeśli condition = false
następnie zwróć inny wynik oznacza b = false