如何在mongo db中总结文档

时间:2017-12-19 04:41:04

标签: mongodb

现在我想查询“SUM Q1到Q5之间的分数(结果应该是4)。附上mlab的集合快照。

mlab snapshot

      db.temp.aggregate({ $match: {
        $and: [
            { QuestionNo: { $gte: 1 } },
            { QuestionNo: { $lte: 5 } }
        ]
      }},
      { $group: { _id : null, sum : { $sum: "$Score" } } });  

我在控制台中看不到任何响应。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

首先,不需要使匹配查询过于复杂。你想要的基本上是1-5之间的所有QuestionNo。我假设您的文档看起来像这样:

{
    "QuestionNo" : 1,
    "Score" : 55
}

/* 2 */
{
    "QuestionNo" : 2,
    "Score" : 33
}
etc...

如果你想总结所有结果,那么你可以做

db.temp.aggregate(
{ 
    $match: {
        QuestionNo: { $gte: 1 , $lte: 5 } 
    }
},
{
    $group: {
        _id: null,
        sum: { $sum: "$Score"}
    }
}
)

如果您想按QuestionNo对它们进行分组,那么您可以这样做:

db.temp.aggregate(
{ 
    $match: {
        QuestionNo: { $gte: 1 , $lte: 5 } 
    }
},
{
    $group: {
        _id: "$QuestionNo",
        sum: { $sum: "$Score"}
    }
}
)