我正在尝试使用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 />";
};
?>
答案 0 :(得分:2)
command()
不返回游标,只返回一个关联数组。只是做:
$result = $mongo->selectDB('users')->command(array(
'geoNear' => 'user',
'near' => $lnglat,
'spherical' => true,
'num' => 10 ));
var_dump($result);