【发布时间】:2013-04-28 10:21:02
【问题描述】:
我正在查询每个州的邮政编码最多的城市:
db.zips.distinct("state", db.zips.aggregate([
{ $group:
{ _id: {
state: "$state",
city: "$city"
},
numberOfzipcodes: {
$sum: 1
}
}
},
{ $sort: {
numberOfzipcodes: -1
}
}
])
)
查询的聚合部分似乎工作正常,但是当我添加 distinct 时,我得到一个空结果。
这是因为我在 id 中有状态吗?我可以做类似distinct("_id.state 的事情吗?
【问题讨论】:
-
对于那些寻找如何使用 Mongo 的聚合来获得不同值的人,试试这个(灵感来自 dam1's answer 和 Mongo's documentation):
db.collectionName.aggregate([{$group: {_id: null, uniqueValues: {$addToSet: "$fieldName"}}}])