在mongodb中使用geoNear时是否可以添加更多过滤器?例如,假设我的记录如下所示:
{
_id: {},
cid: 1,
latlon: [ -74.07096147537231, 40.9088747684256 ]
}
我可以传递“cid”以确保只有“cid”等于“1”的记录吗?如果geoNear不可能,我该怎么做?我正在使用geoNear,因为它返回距离......
谢谢!
答案 0 :(得分:11)
是的,确定有可能。您可以像往常一样使用$ near过滤:
db.places.find( { latlon: { $near : [50,50] } }, {cid: 1} )
更新:
如果你需要使用距离db.runCommand
,如果不需要距离 - db.collection.find
像往常一样。
geoNear命令已添加 返回距离的好处 来自指定点的每个项目 结果,以及一些 用于故障排除的诊断。
query
中有db.runCommand
个参数,您可以像这样使用它:
db.runCommand( { geoNear : "latlon" , near : [ 50 , 50 ], num : 10,
query : { cid: 1 } } );