2013-07-30 4 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() прикручивает положение массива. используя как iterator_to_array(), так и foreach() за пределами Laravel, просто отлично работали. Спасибо за указатель, хотя –

0

Adi, Вы можете получить представление от Here. Вы можете попытаться использовать имя переменной для geo значений.

Другое попробовать, как это,

$collection->find(Array("point" => Array('$within' => Array('$center'=> Array(Array(151.1955562233925,-33.87107475181752), 0.1/111))))); 
Смежные вопросы