mongodb和php如何使用geoNear输出结果

时间:2012-02-04 18:21:26

标签: mongodb geospatial

我正在尝试使用PHP使用geoNear命令输出结果,但我一直回来的是一个可以使用print_r检索的文档。

这是我的例子,搜索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 />";
    };
    ?>

1 个答案:

答案 0 :(得分:2)

command()不返回游标,只返回一个关联数组。只是做:

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

var_dump($result);