直接使用时,这个排序是正确的。
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);有什么想法吗?
发布于 2013-07-30 07:58:08
你的查询看起来很好。我能想到几件事:
2dsphere索引,这是您从shell中得到的iterator_to_array()在捣乱--如果你做了一个正常的foreach(),你会得到正确的顺序吗?发布于 2013-07-30 06:50:03
艾迪,你可以从Here那里得到灵感。您可以尝试为geo值使用变量名。
另一种尝试是这样,
$collection->find(Array("point" => Array('$within' => Array('$center'=> Array(Array(151.1955562233925,-33.87107475181752), 0.1/111 ) ) )));https://stackoverflow.com/questions/17939815
复制相似问题