0

直接使用すると、これは正しくソートされます

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);

何か案は ?

4

2 に答える 2

0

あなたのクエリは問題ないようです。私はいくつかのことを考えることができます:

  • 2dsphereシェルから持っているインデックスはありません
  • iterator_to_array()それをいじっています—通常の場合foreach()、正しい順序でそれらを取得しますか?
于 2013-07-30T07:58:08.990 に答える
0

Adi、ここからアイデアを得ることができます。地理値に変数名を使用することができます。

他のこのような試み、

$collection->find(Array("point" => Array('$within' => Array('$center'=> Array(Array(151.1955562233925,-33.87107475181752), 0.1/111 ) ) )));
于 2013-07-30T06:50:03.593 に答える