1

I'm trying to insert a record that contains a nested array of geospatial data. I've even tried making the array an object instead, but no luck there either. Here's more or less the insert line:

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

One interesting thing is that when I call the index 'loc' something else, such as just an integer, the insert works.

Here's the array that should be going into Mongodb, but isn't:

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

)
4

2 に答える 2

0

MongoDB は、地理空間的な「フィールド」のキーを気にしません。最初の 2 つの要素を取得するだけで、最初の要素は経度で、2 つ目の要素は緯度です。最初の名前を「lat」にしても、経度として表示されます。挿入されないと思う唯一の理由は、おそらくいくつかのフィールドに一意のキーがあるためです。

挿入しているものの完全に機能する(ただし小さい)例を追加する場合は、答えを更新して、うまくいけば何が間違っているかを示すことができます。

于 2012-02-21T09:06:23.770 に答える
0
array( 'loc' => array( floatval($lon),  floatval($lat)))
于 2012-02-25T00:47:48.393 に答える