$exists
не се поддържа в aggregate
заявка на MongoDB . Така че в aggregate
заявка вместо $exists
може да използва $ifNull
.
синтаксис:
{ $ifNull: [ <expression>, <replacement-expression-if-null> ] }
Актуализирано:
за да получите b
стойност като true
или false
можете да опитате тази заявка
db.test.aggregate([
{
$project: {
b: {
$cond: [
{$ifNull: ['$b', false]}, // if
true, // then
false // else
]
}
}
}
])
Обяснение:
b = $cond: [ 'if condition satisfied', 'then true', 'else false' ];
където condition = {$ifNull: ['$b', false]}
Тук ако $b
не съществува, тогава condition = false
в противен случай condition = true
.
така че ако condition = true
след това върне след това резултат това означава b = true
ако condition = false
след това върнете друг резултат означава b = false