sql >> Databasteknik >  >> NoSQL >> MongoDB

mongoose-aggregat med $exists in $cond

$exists stöds inte i aggregate fråga från MongoDB . Alltså i aggregate fråga istället för $exists kan använda $ifNull .

syntax:

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

för mer

Uppdaterad:

för att få b värde som true eller false kan prova den här frågan

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

Förklaring:

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

där condition = {$ifNull: ['$b', false]} Här om $b existerar inte då condition = false annars condition = true .

så om condition = true returnera sedan sedan resultat det betyder b = true
om condition = false returnera sedan annat resultat betyder b = false



  1. fel:förväntad klass- eller objektdefinition

  2. Batch infoga/uppdatera med Mongoid?

  3. Undantag som autentiserar MongoCredential och Uncategorized Mongo Db Exception

  4. Användning av MongoDB UpdateFirst-metoden