首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mongodb geoNear +额外的过滤器?

mongodb geoNear +额外的过滤器?
EN

Stack Overflow用户
提问于 2011-04-05 05:00:43
回答 1查看 4.1K关注 0票数 4

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

代码语言:javascript
复制
{
 _id: {},
 cid: 1,
 latlon: [ -74.07096147537231, 40.9088747684256 ]
}

我能不能传递"cid“来确保只有"cid”等于"1“的记录?如果使用geoNear无法做到这一点,我该怎么做?我使用geoNear,因为它返回距离...

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-05 05:05:11

是的,这当然是可能的。您可以像往常一样对$near使用任何过滤:

代码语言:javascript
复制
db.places.find( { latlon: { $near : [50,50] } }, {cid: 1} )

更新:

如果需要距离,请使用db.runCommand;如果不需要距离,请照常使用db.collection.find

来自documentation

geoNear命令还有一个额外的好处,即返回结果中每个项目到指定点的距离,以及一些用于故障排除的诊断信息。

db.runCommand中有query参数,可以这样使用:

代码语言:javascript
复制
db.runCommand( { geoNear : "latlon" , near : [ 50 , 50 ], num : 10,
                 query : { cid: 1 } } );
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5544291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档