MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

mongoose агрегат, използващ $exists в $cond

$exists не се поддържа в aggregate заявка на MongoDB . Така че в aggregate заявка вместо $exists може да използва $ifNull .

синтаксис:

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

за още

Актуализирано:

за да получите b стойност като true или false можете да опитате тази заявка

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

Обяснение:

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

където condition = {$ifNull: ['$b', false]} Тук ако $b не съществува, тогава condition = false в противен случай condition = true .

така че ако condition = true след това върне след това резултат това означава b = true
ако condition = false след това върнете друг резултат означава b = false



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose не създава поддокумент от JSON масив

  2. Как да използвам библиотеки на трети страни в glassfish?

  3. Заявка за конкретна дата с MongoDB и NodeJS

  4. Настройване на singleton връзка с node.js и mongo

  5. Как да активирам удостоверяване на MongoDB чрез Docker?