sql >> Database teknologi >  >> NoSQL >> MongoDB

mongoose-aggregat ved hjælp af $ findes i $cond

$exists ikke understøttet i aggregate forespørgsel fra MongoDB . Altså i aggregate forespørgsel i stedet for $exists kan bruge $ifNull .

syntaks:

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

for mere

Opdateret:

for at få b værdi som true eller false kan prøve denne forespørgsel

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

Forklaring:

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

hvor condition = {$ifNull: ['$b', false]} Her hvis $b eksisterer ikke, så condition = false ellers condition = true .

så hvis condition = true returner derefter derefter resultat det betyder b = true
hvis condition = false returner derefter andet resultat betyder b = false



  1. mongoose - 'gem'-metoden findes ikke

  2. MongoDB Stored Procedure Equivalent

  3. returner kun det sidste niveau af den indlejrede egenskab, der søges i et dokument

  4. Bedste programmeringssprog til at implementere DBSCAN-algoritme, der forespørger en MongoDB-database?