2

我是 mongodb 的新手,尝试使用地理空间从 mongodb 获取结果。有了这个 [http://jamesroberts.name/blog/2012/03/12/mongodb-geospatial-query-example-in-php-with-distance-radius-in-miles-and-km/][1] 参考,我在我的收藏中创建了 2d 索引器。

我得到了结果,但没有按距离排序。我也尝试了 $near 运算符,但它返回 100 个文档。我希望在给定英里下给定位置附近的所有结果有人可以帮我按距离排序的顺序获取数据吗?

$connection = new MongoClient( "mongodb://192.168.1.167" );
$dbname="mydb";
$collectionName="user";
$db = $connection->$dbname;
$collection = $db->$collectionName;

$lat="36.23304900"; 
$lon="-115.24228800"; 
$radius = 40;
$collection = $db->$collectionName;
$radiusOfEarth = 3956; //avg radius of earth in miles
$query = array('lnglat' =>array('$geoWithin' =>array('$centerSphere' =>array(array(floatval($lon), floatval($lat)), $radius/$radiusOfEarth))) ,'user_id' => "1234" ,'type'=>"my_type");

$cursor = $collection->find($query);
4

1 回答 1

0

尝试这个:

$cursor = $collection->find($query);

$cursor->sort(array('distance' => -1));
于 2013-05-15T12:49:21.110 回答