现在我想查询“SUM Q1到Q5之间的分数(结果应该是4)。附上mlab的集合快照。
db.temp.aggregate({ $match: {
$and: [
{ QuestionNo: { $gte: 1 } },
{ QuestionNo: { $lte: 5 } }
]
}},
{ $group: { _id : null, sum : { $sum: "$Score" } } });
我在控制台中看不到任何响应。非常感谢任何帮助。
答案 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"}
}
}
)