首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用$nearSphere时不正确的排序结果

使用$nearSphere时不正确的排序结果
EN

Stack Overflow用户
提问于 2013-07-30 06:32:39
回答 2查看 309关注 0票数 0

直接使用时,这个排序是正确的。

代码语言:javascript
复制
db.users.find({currentloc : {$nearSphere : [115.22804,-8.69914]}})

但是,当从PHP执行时,它看起来像是按_id排序的

代码语言:javascript
复制
$users = $this->m->mappt->users;
$results = $users->find(
    array(
        'currentloc' => array('$nearSphere' => array(115.22804,-8.69914))

    );
$arrayresult = iterator_to_array($results);

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-30 07:58:08

你的查询看起来很好。我能想到几件事:

  • 您没有2dsphere索引,这是您从shell中得到的
  • iterator_to_array()在捣乱--如果你做了一个正常的foreach(),你会得到正确的顺序吗?
票数 0
EN

Stack Overflow用户

发布于 2013-07-30 06:50:03

艾迪,你可以从Here那里得到灵感。您可以尝试为geo值使用变量名。

另一种尝试是这样,

代码语言:javascript
复制
$collection->find(Array("point" => Array('$within' => Array('$center'=> Array(Array(151.1955562233925,-33.87107475181752), 0.1/111 ) ) )));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17939815

复制
相关文章

相似问题

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