我如何在MongoDB聚合查询中使用多个小组阶段

时间:2019-09-17 15:30:57

标签: node.js mongodb group-by aggregate

Mongo查询无法返回任何输入,以防万一,我增加了查询中group stages的数量。下面是我正在使用的查询的片段,

.group({
    _id: "$date",
    count: {
        $sum: 1
    },

})
/*
.group({
    _id: "$joinDate",
    count: {
        $sum: 1
    },

})
.group({
    _id: "$applyDate",
    count: {
        $sum: 1
    },

})*/

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式完成

yourModel.aggregate([ { $group : { _id : "$date" } } ] )

这可以帮助您解决问题。

答案 1 :(得分:0)

@CsAlkemy,这是因为您尝试使用的字段不会在$group阶段之后传播。

例如,考虑以下示例文档和对该文档的汇总查询,

{
    "name": "SV",
    "age": 21,
    "school": "KV",
    "city": "Ajmer"
}

汇总查询

db.temp.aggregate([
{
    $group: {
        "_id": "$school",
        "count": {
            $sum: 1
        }
    }
}])

输出

{ "_id" : "KV", "count" : 1 }

如您所见,我们得到的字段只有_idcount,其他字段name, age, school and city丢失了,以后无法使用。