$exists não suportado em aggregate consulta do MongoDB . Então, em aggregate consulta em vez de $exists pode usar $ifNull . sintaxe:
{ $ifNull: [ <expression>, <replacement-expression-if-null> ] }
para mais
Atualizado:
para obter
b valor como true ou false pode tentar esta consulta db.test.aggregate([
{
$project: {
b: {
$cond: [
{$ifNull: ['$b', false]}, // if
true, // then
false // else
]
}
}
}
])
Explicação:
b = $cond: [ 'if condition satisfied', 'then true', 'else false' ];
onde
condition = {$ifNull: ['$b', false]} Aqui se $b não existe então condition = false caso contrário condition = true . então se
condition = true então retorne depois result isso significa b = true se
condition = false em seguida, retorne outro resultado significa b = false