【问题标题】:How can i use multiple group stages in mongodb aggregate query如何在 mongodb 聚合查询中使用多个组阶段
【发布时间】:2020-01-18 12:21:31
【问题描述】:

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

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

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

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

})*/

【问题讨论】:

  • 在不了解您的数据结构的情况下,很难进行故障排除。但是,这是一个不错的explanation of how $group works。它可能会解决您的问题。

标签: node.js mongodb group-by aggregate


【解决方案1】:

@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 已丢失,以后无法使用。

【讨论】:

  • @CsAlkemy,如果您需要其他帮助,可以根据您的查询要求更新您的问题,我可以从那里帮助您。
【解决方案2】:

可以通过以下方式进行

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

这可能会帮助您解决问题。

【讨论】:

    猜你喜欢
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 2020-01-23
    相关资源
    最近更新 更多