我是mongodb的新手,尝试使用geospatial从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);
答案 0 :(得分:0)
试试这个:
$cursor = $collection->find($query);
$cursor->sort(array('distance' => -1));