Node.js 如何在mongodb聚合查询中使用多个组阶段

Node.js 如何在mongodb聚合查询中使用多个组阶段,node.js,mongodb,group-by,aggregate,Node.js,Mongodb,Group By,Aggregate,Mongo查询无法返回任何输入,以防我在查询中增加了组阶段的数量。下面是我正在使用的查询片段 .group({ _id: "$date", count: { $sum: 1 }, }) /* .group({ _id: "$joinDate", count: { $sum: 1 }, }) .group({ _id: "$applyDate", count: { $sum: 1

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

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

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

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

})*/

你可以用下面的方法做

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

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

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

例如,考虑下面的示例文档和对文档的聚合查询,

{
    "name": "SV",
    "age": 21,
    "school": "KV",
    "city": "Ajmer"
}
聚合查询

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

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

正如您所看到的,我们得到的字段只有
\u id
count
,其他字段
姓名、年龄、学校和城市
丢失,以后无法使用。

如果不知道您的数据结构,很难排除故障。然而,这是一个很好的例子。它可能会解决您的问题。@CsAlkemy,如果您需要其他帮助,您可以根据查询的要求更新您的问题,我可以从那里帮助您。