2013-07-30 24 views
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); 

任何想法,這個整理是否正確?

回答

0

您的查詢看起來不錯。我能想到的幾件事情:

  • 你沒有2dsphere指數,你必須從外殼
  • iterator_to_array()與它搞亂 - 如果你做一個正常的foreach()你讓他們在那麼正確的順序呢?
+0

謝謝,它看起來Laravel 4 Response :: json()擰了陣列位置。在Laravel之外使用iterator_to_array()和foreach()方法都很好。感謝指針,但 –

0

Adi,你可以從Here得到想法。您可以嘗試使用geo值的變量名稱。

其他嘗試這樣,

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