mongodb - Mongo 计算一组文档中每个值的出现次数

我有一些这样的文件:

{
  "user": '1'
},
{ "user": '1'
},
{
  "user": '2'
},
{
  "user": '3'
}

我希望能够获得一组所有不同用户及其各自的计数,按降序排序。所以我的输出会是这样的:

{
  '1': 2,
  '2': 1,
  '3': 1
}

我认为这可以通过 Mongo 聚合() 来完成,但我在确定正确的流程时遇到了很多麻烦。

最佳答案

您可以通过 aggregation 获得结果(不是您需要的格式)

db.collection.aggregate(
   {$group : { _id : '$user', count : {$sum : 1}}}
).result

您的示例文档的输出是:

"0" : {
    "_id" : "2",
    "count" : 1
},
"1" : {
    "_id" : "3",
    "count" : 1
},
"2" : {
    "_id" : "1",
    "count" : 2
}

https://stackoverflow.com/questions/28013318/

相关文章:

mongodb - 如何从 tar.gz 文件安装 Robomongo 作为 Ubuntu 15.1

perl - 如何加快 MongoDB 插入/秒?

python - 为什么使用 update_one 更新记录会引发 ValueError?

javascript - Mongoose 填充嵌入式

ruby-on-rails - Heroku 的 Rails、Mongoid 和 Unicorn 配

c# - ORM 与 NoSQL API 是多余的吗?

mongodb - mongo的命令行身份验证失败

mongodb - 在 mongodb 中存储图形

mongodb - 为什么我不能使用 Homebrew 更新到最新的 MongoDB?

mongodb - Mongorestore 不知道如何处理文件 "db/collection.bs