如何在节点js中进行聚合

时间:2017-01-17 02:57:57

标签: node.js mongodb mongodb-query aggregation-framework

我目前正在寻找在Node js中进行聚合的方法。我试图做$ lts,$ gte和其他但我想知道这些是否都归类为聚合。如果没有,请你劝我一点。以下是我所拥有的。我可以举例说明如何进行$ sum或$ average的汇总。

$ GTE

db.contact.find("machine_unit" : {$gte:5}}, function(err,meibanlist){
  if (err || !meibanlist ) console.log("Record is not found");
else meibanlist.forEach (function(machine_unit){
console.log(machine_unit);
});
});

1 个答案:

答案 0 :(得分:1)

以下示例演示了node.js express app中的聚合操作,其中REST API端点返回聚合中的文档列表,该列表计算单个 $group中的平均值和文档数管道。

聚合操作使用 aggregate() 函数,该函数接受由数组表示的管道,将machine_Id键上集合中的所有文档分组并返回总数每组的文档数量以及平均数量(即,如果文档具有amount字段):

app.get('/meibanlist/machines', function (req, res) {
    db.meibanlist.aggregate([
        {
            "$group": {
                "_id": "$machine_Id",
                "count": { "$sum": 1 },
                "average": { "$avg": "$amount" }
            }
        }
    ], function (err, result) {
        console.log(result);
        res.json(result);
    });
});