I';我在PHP中插入带有地理空间数据的Mongodb记录时遇到问题


I'm having trouble inserting a Mongodb record with geospatial data in PHP

我正在尝试插入一个包含嵌套地理空间数据数组的记录。我甚至试着把数组变成一个对象,但也没有成功。这或多或少是插入行:

$collection->insert($obj, array('safe'=>true));

一件有趣的事情是,当我调用索引"loc"时,比如只调用一个整数,插入就可以了。

以下是应该进入Mongodb的数组,但不是:

Array
(
  [name] => Home
  [address] => 500 Pole Line Road
  [city] => Davis
  [state] => CA
  [zip] => 95618
  [loc] => Array
    (
      [lon] => -121.726710
      [lat] => 38.549576
    )
)

MongoDB不关心地理空间"字段"的键。它只需要前两个元素,第一个是经度,第二个是纬度。即使你把你的第一个名字命名为"lat",它仍然会被视为经度。我认为它不会插入的唯一原因可能是你在某些字段上有一个唯一的键。

如果你添加一个完整的(但很小的)插入示例,那么我可以更新答案,希望能显示出哪里出了问题。

array( 'loc' => array( floatval($lon),  floatval($lat)))