mongodb - 以聚合顺序使用 $$ROOT

标签 mongodb aggregation-framework

我正在尝试按某种顺序从集合中获取数据:

db.data.aggregate([
    {$limit: 1000},
    {$group: {
        _id: "$service",
        count: {$sum: 1},
        data: {$push: '$$ROOT'}
    }}
]);

但得到下一个错误:

Error("Printing Stack Trace")@:0
()@src/mongo/shell/utils.js:37
([object Array])@src/mongo/shell/collection.js:866
@(shell):6

uncaught exception: aggregate failed: {
    "errmsg" : "exception: FieldPath field names may not start with '$'.",
    "code" : 16410,
    "ok" : 0
}

我哪里做错了?

最佳答案

因此,根据评论,您需要 MongoDB 2.6 版来执行此操作。但是当然使用 2.6 这对我有用:

db.collection.aggregate([
    { "$limit": 1000 }, 
    { "$group": { 
        "_id": null, 
        "count": { "$sum": 1}, 
        "data": { "$push": "$$ROOT"  }
    }}
])

关于mongodb - 以聚合顺序使用 $$ROOT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23011193/

相关文章:

php - Ubuntu 11.04 PHP MongoDB 安装 - php.ini 中的 mongo.so 但没有效果

javascript - JSON.stringify 显示属性值,但无法直接访问属性

mongodb - MongoDB 聚合匹配结果的计数

Mongodb:聚合:在 $group 之前对数组中的值求和

mongodb - 在文档 mongodb mgo 驱动程序中增加嵌套数组的特定值

node.js - Postman 将 Mongo 数组转换为对象

node.js - 在 keystone.js 管理 UI 中显示其他模型(集合)的字段?

Mongodb 对 $sample 结果运行查询

javascript - 从 mongodb 中的子文档数组中提取(除一个之外的所有)文档

node.js - Mongoose 对聚合结果进行排序