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

Условно размотаване в агрегацията на MongoDb?

Изградете своя тръбопровод за агрегиране програмно, преди да извикате aggregate :

var pipeline = [];
pipeline.push(
    {   // SELECT
    $project : { "sex" : 1,
             "salesIndex":1
            }
    },
    {   // WHERE
        $match: {"salesIndex": {$gte: index}}
    }
);
if (filteringByDepartment) {
    pipeline.push(
        { $unwind: '$departments' },
        { $match: { departments: departmentId }}
    );
}    
pipeline.push(
    {   // GROUP BY y agregadores
        $group: {
            _id      : "$sex",
            sexCount : { $sum: 1 }
        }
    },
    { $sort: { sexCount: -1 } }
);

models.Users.aggregate(pipeline, function(err, dbres) {
    //...
});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Еквивалент на mongo shell db.collection.runCommand() в Node.js

  2. Как MongoDB дава възможност за машинно обучение

  3. Eclipselink с MongoDB java.lang.ClassCastException

  4. Точкова нотация срещу $elemMatch

  5. Как трябва да регистрирам моята услуга mongodb, която използва MongoClient, Singleton или scoped?