我正试着按顺序从收集中获取数据:

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
}

我哪里出错了?

推荐答案

因此,根据 comments ,您需要一个MongoDB 2.6版来执行此操作.但当然,使用2.6对我来说很有用:

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

Mongodb相关问答推荐

MongoDB:子文档中仅存在于父文档中的返回字段?

在数组对象 Mongodb 中仅 Select 需要的数组

发布到 MongoDB 时生成的附加id字段

如何匹配 MongoDB 中同一文档中两个字段的比较?

MongoDB:通过嵌套数组中的最后一个元素值获取文档

对 MongoDB 集合中的对象数组进行排序

如何修改 mongodb 中嵌套对象数组中的字段名称/键?

如何聚合过滤器嵌套文档并从其他字段中获取值

mongodb中集合的最大大小是多少

如何将 json 字符串编组到 bson 文档以写入 MongoDB?

Mongoose 架构引用和未定义类型ObjectID

如果 mongoDB 服务器正在运行,如何从驱动程序判断

从 MongoDB find() 结果集中识别最后一个文档

从命令行创建 MongoDB 用户

如何更新 mongodb 文档以向数组添加新元素?

ZonedDateTime 与 MongoDB

在安装的 MongoDB homebrew 中设置 dbpath (Mac OS)

我们如何使用spring boot为mongodb创建自动生成的字段

MongoDB 和 Robomongo: Can't connect (authentication)

将新值推送到 mongodb 内部数组 - mongodb/php