首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >信条MongoDB geoNear

信条MongoDB geoNear
EN

Stack Overflow用户
提问于 2011-08-09 01:31:19
回答 2查看 904关注 0票数 1

我正在尝试如何在不重写doctrine mongodb项目的情况下执行geoNear命令。我已经查看了Expr.php和Builder.php文件,但我没有找到geoNear命令的引用,我如何才能在我的Doctrine MongoDB ODM中获得此功能?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2013-04-30 20:40:34

DoctrineODM的最新版本有geoNear方法:See the code

然而,请记住,geoNear确实是MongoDB团队为Foursquare制作的一个黑客工具。它只返回按距离排序的前100个结果(并且不能分页)

改用$near$near Doc for Mongo 2.2

代码语言:javascript
复制
$query->field('coordinates')
      ->equals(array('$near' => array($lat, $lon) 
                   , '$maxDistance' => $maxDistanceKm / 111));

警告:$near在Mongo2.4中发生了变化,现在它也只返回前100项:$near Doc for Mongo 2.4

如果你不需要按距离排序,可以使用$geoWithin (或Mongo2.2中的$within ),然后你可以按其他字段排序并分页:

代码语言:javascript
复制
$query->field('coordinates')
       ->equals(array('$within' => array('$center' => array(array($lat, $lon)
                                        , $maxDistanceKm / 111) ) ));
票数 1
EN

Stack Overflow用户

发布于 2011-09-21 00:56:40

你的库版本有多老?

Doctrine MongoDb mappers's trunk$qb->near(array($x, $y))上提供了geoNear命令的实现。但我很快就测试了它,我不能告诉你它在广泛的使用中有多好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6986093

复制
相关文章

相似问题

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