基于地理位置的查询无法从php在mongo中运行

基于地理位置的查询无法从php在mongo中运行,php,mongodb,geolocation,Php,Mongodb,Geolocation,我有一个名为a city的mongo集合,其中包含以下json { "city_name": "Amesbury", "lat": "42.8583925", "lng": "-70.9300376", "geo_coords": [-70.9300376,42.8583925] } 正如你所看到的,这个收藏有一个艾姆斯伯里的地理位置。现在,我正试图使用php获取此文件,并使用了以下代码 $collection = $this->mongodb->city;

我有一个名为a city的mongo集合,其中包含以下json

{
  "city_name": "Amesbury",
  "lat": "42.8583925",
  "lng": "-70.9300376",
  "geo_coords": [-70.9300376,42.8583925]
}
正如你所看到的,这个收藏有一个艾姆斯伯里的地理位置。现在,我正试图使用php获取此文件,并使用了以下代码

$collection = $this->mongodb->city;
        $collection->ensureIndex(array('geo_coords' => '2d'));

        $radiusMiles = 500000; //get all results within 5 miles
        $radiusOfEarth = 3956; //avg radius of earth in miles

        $cursor = $collection->find(
            array('geo_coords' =>
                array('$within' =>
                    array('$centerSphere' =>
                        array(
                            array($lng, $lat), $radiusMiles/$radiusOfEarth
                        )
                    )
                )
            )
        );
对于这段代码,我将波士顿的经度和纬度作为消息参数传递,并且我希望查询能够获取amesbury,因为这两个城市都是相邻的城市,而且肯定彼此相距500000英里


但是我的查询没有返回任何结果。问题是什么

地理坐标的格式不正确。理想情况下,它应该是由两个数字组成的数组:

"geo": [-70.9300376, 42.8583925]

请阅读完整的文档:

尝试将坐标更改为正确的格式,但仍然没有成功,还有其他想法吗?只需阅读文档,您的范围似乎也有点大。您是否在mongo javascript shell中尝试过?