4

在 mongodb 中使用 geoNear 时是否可以添加更多过滤器?例如,假设我的记录如下所示:

{
 _id: {},
 cid: 1,
 latlon: [ -74.07096147537231, 40.9088747684256 ]
}

我可以通过“cid”来确保只有“cid”等于“1”的记录吗?如果 geoNear 不可能,我该怎么做?我正在使用 geoNear 因为它返回距离......

谢谢!

4

1 回答 1

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 } } );
于 2011-04-04T21:05:11.433 回答