2012-02-04 41 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