$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