MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mungo-Aggregat mit $exists in $cond

$exists wird in aggregate nicht unterstützt Abfrage von MongoDB . Also in aggregate Abfrage anstelle von $exists kann $ifNull verwenden .

Syntax:

{ $ifNull: [ <expression>, <replacement-expression-if-null> ] }

für mehr

Aktualisiert:

um b zu erhalten Wert als true oder false können diese Abfrage versuchen

db.test.aggregate([
    {
        $project: {
            b: { 
                $cond: [
                    {$ifNull: ['$b', false]}, // if
                    true, // then
                    false // else
                ]
            }
        }
    }
])

Erklärung:

b = $cond: [ 'if condition satisfied', 'then true', 'else false' ];

wobei condition = {$ifNull: ['$b', false]} Hier wenn $b nicht vorhanden dann condition = false andernfalls condition = true .

also wenn condition = true dann dann Ergebnis zurückgeben das bedeutet b = true
wenn condition = false dann sonst Ergebnis zurückgeben bedeutet b = false