在mongodb中使用geoNear的时候可以添加更多的过滤器吗?例如,假设我的记录如下所示:
{
_id: {},
cid: 1,
latlon: [ -74.07096147537231, 40.9088747684256 ]
}我能不能传递"cid“来确保只有"cid”等于"1“的记录?如果使用geoNear无法做到这一点,我该怎么做?我使用geoNear,因为它返回距离...
谢谢!
发布于 2011-04-05 05:05:11
是的,这当然是可能的。您可以像往常一样对$near使用任何过滤:
db.places.find( { latlon: { $near : [50,50] } }, {cid: 1} )更新:
如果需要距离,请使用db.runCommand;如果不需要距离,请照常使用db.collection.find。
来自documentation
geoNear命令还有一个额外的好处,即返回结果中每个项目到指定点的距离,以及一些用于故障排除的诊断信息。
db.runCommand中有query参数,可以这样使用:
db.runCommand( { geoNear : "latlon" , near : [ 50 , 50 ], num : 10,
query : { cid: 1 } } );https://stackoverflow.com/questions/5544291
复制相似问题