我正在做一个查询,查找每个州拉链最多的城市:

db.zips.distinct("state", db.zips.aggregate([ 
    { $group:
      { _id: {
           state: "$state", 
           city: "$city" 
         },
        numberOfzipcodes: { 
           $sum: 1
         }
      }
    }, 
    { $sort: {
        numberOfzipcodes: -1
         }
      }
  ])
)

查询的聚合部分似乎工作正常,但当我添加distinct时,得到的结果是空的.

这是因为我的身份证上有状态吗?我能做distinct("_id.state块吗?

推荐答案

Distinct和聚合框架不可互操作.

相反,你只想:

db.zips.aggregate([ 
    {$group:{_id:{city:'$city', state:'$state'}, numberOfzipcodes:{$sum:1}}}, 
    {$sort:{numberOfzipcodes:-1}},
    {$group:{_id:'$_id.state', city:{$first:'$_id.city'}, 
              numberOfzipcode:{$first:'$numberOfzipcodes'}}}
]);

Mongodb相关问答推荐

如何使用MongoDB对子文档进行条件投影?

在MongoDB集合中按文档内的频率对数组排序

如何在Mongodb Mongoose Nodejs中提取不等于一组值的字段

MongoDB:检测所有重叠事件(开始/结束日期)?

减法聚合Mongo文档Golang

mongo如何通过聚合加载嵌套文档

从具有多个数组匹配 MongoDB 的两个集合中采样数据

用Golang减go mongodb中的两个字段

使用 EventSourcing(NodeJS、MongoDB、JSON)跨多个偶尔连接的客户端同步数据

Mongo 重启错误 -- /var/run/mongodb/mongod.pid 存在

Springboot 使用 find*() 查询时出现 Mongodb 错误

如何在array.NET驱动程序中的元素属性上创建MongoDB MultiKey索引

MongoDB:自动生成的 ID 为零

MongoDB Compass 过滤器(查询)

MongoDB 嵌套 OR/AND 在哪里?

MongoDB限制内存

Mongo聚合框架,排序然后分组不起作用

如何在 golang 和 mongodb 中通过 id 查找

MongoDB聚合框架的索引优化

对于社交网站(使用 Ruby on Rails 开发)来说,MongoDB 会是一个好主意吗?