2012-02-04 38 views
0

我試圖使用geoNear命令使用PHP輸出結果,但是我一直找回的是我可以使用print_r檢索的一個文檔。mongodb和php如何使用geoNear輸出結果

這是我的例子搜索1正常工作,但搜索2沒有做任何事情。

<?php 
    $mongo = new Mongo(); 

    $collection = $mongo->selectDB('users')->selectCollection('user'); 

    $lng = -2.28; 
    $lat = 53.46; 
    $lnglat = array($lng, $lat); 
    $query = array('loc' => array('$near' => $lnglat)); 

    //search 1 
    $cursor = $collection->find($query)->limit(10); 


    while($cursor->hasNext()){ 
     $user = $cursor->getNext(); 
     echo $user['username'] . "<br />"; 
    }; 

    //search 2 
    $cursor2 = $mongo->selectDB('users')->command(array(
        'geoNear' => 'user', 
        'near' => $lnglat, 
        'spherical' => true, 
        'num' => 10)); 

    while($cursor2->hasNext()){ 
     $user = $cursor2->getNext(); 
     echo $user['username'] . "<br />"; 
    }; 
    ?> 

回答

2

command()不返回光標,只是關聯數組。只是這樣做:

$result = $mongo->selectDB('users')->command(array(
       'geoNear' => 'user', 
       'near' => $lnglat, 
       'spherical' => true, 
       'num' => 10)); 

var_dump($result); 
+0

謝謝我發佈了這個,只是使用$近搜索和使用PHP來計算用戶之間的距離。 – jamcoupe 2012-02-07 17:22:48