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

时间:2013-07-30 06:32:39

标签: mongodb mongodb-php

直接使用时正确排序

db.users.find({currentloc : {$nearSphere : [115.22804,-8.69914]}})

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

排序
$users = $this->m->mappt->users;
$results = $users->find(
    array(
        'currentloc' => array('$nearSphere' => array(115.22804,-8.69914))

    );
$arrayresult = iterator_to_array($results);

任何想法?

2 个答案:

答案 0 :(得分:0)

Adi,您可以从Here获得想法。您可以尝试为 geo 值使用变量名称。

其他尝试这样,

$collection->find(Array("point" => Array('$within' => Array('$center'=> Array(Array(151.1955562233925,-33.87107475181752), 0.1/111 ) ) )));

答案 1 :(得分:0)

您的查询看起来很好。我能想到一些事情:

  • 你没有2dsphere索引,你可以从shell获得
  • iterator_to_array()正在搞乱它 - 如果你做了正常的foreach(),那么你能按照正确的顺序得到它们吗?