sql >> Databáze >  >> NoSQL >> MongoDB

mongoose agregát pomocí $exists in $cond

$exists není podporováno v aggregate dotaz na MongoDB . Tedy v aggregate dotaz místo $exists můžete použít $ifNull .

syntaxe:

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

další informace

Aktualizováno:

získat b hodnotu jako true nebo false můžete zkusit tento dotaz

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

Vysvětlení:

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

kde condition = {$ifNull: ['$b', false]} Zde pokud $b neexistuje, pak condition = false jinak condition = true .

takže pokud condition = true pak vraťte pak výsledek to znamená b = true
pokud condition = false pak vraťte jiný výsledek znamená b = false



  1. Agregace skupin pomocí jarních dat mongodb

  2. Jak získat přístup k instanci MongoDB 4.2?

  3. Jak odstranit mnoho dokumentů v dělené kolekci v Azure CosmosDB pomocí MongoDB API

  4. Jak přejmenovat/alias pole (pole) při načítání z MongoDB pomocí dotazu pomocí nativní jednotky MongoDB-Node.JS?