在 mongodb 中使用 geoNear 时是否可以添加更多过滤器?例如,假设我的记录如下所示:
{
_id: {},
cid: 1,
latlon: [ -74.07096147537231, 40.9088747684256 ]
}
我可以通过“cid”来确保只有“cid”等于“1”的记录吗?如果 geoNear 不可能,我该怎么做?我正在使用 geoNear 因为它返回距离......
谢谢!
在 mongodb 中使用 geoNear 时是否可以添加更多过滤器?例如,假设我的记录如下所示:
{
_id: {},
cid: 1,
latlon: [ -74.07096147537231, 40.9088747684256 ]
}
我可以通过“cid”来确保只有“cid”等于“1”的记录吗?如果 geoNear 不可能,我该怎么做?我正在使用 geoNear 因为它返回距离......
谢谢!
是的,当然有可能。您可以像往常一样使用 $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 } } );