【发布时间】:2013-04-29 01:21:46
【问题描述】:
问题是:
考虑以下位置:[-72, 42] 和围绕该点的半径为 2 的范围(圆)。编写查询以查找与此范围(圆圈)相交的所有状态。然后,您应该返回每个州的总人口和城市数量。根据城市数量对各州进行排名。
到目前为止我已经写了这个:
db.zips.find({loc: {$near: [-72, 42], $maxDistance: 2}})
的示例输出是: { "city" : "WOODSTOCK", "loc" : [ -72.004027, 41.960218 ], "pop" : 5698, "state" : "CT", "_id" : "06281" }
在 SQL 中,我只需按“州”进行分组,我怎么能在这里做到这一点,同时还要计算所有城市和总人口?
【问题讨论】:
-
我认为按状态分组来做所有你想在 SQL 或 MongoDB 中做的事情是不够的。但是 find 是如何做到你想要的呢?您想要与此范围相交的所有州 - 这不是您在这里找到的 - 您正在寻找该半径内的所有 城市。这就是你想要的吗?
标签: mongodb mongoose mongoid nosql-aggregation nosql