MongoDB将数组转换为字典

时间:2014-08-29 22:53:11

标签: mongodb

我插入:

{
...

"loc":[-124.9973,49.68829] 

...
}

,它存储为:

  "loc": {
           "0": -124.9973,
           "1":   49.68829
          }

这可以从mongo命令行或通过PHP或通过RockMongo表单发生。

这是预期的行为吗?

1 个答案:

答案 0 :(得分:0)

当我从mongo shell进行插入时,我不会得到那种行为

dmReplSet:PRIMARY> db.aug29.insert( { "loc" : [ -124.9973, 49.68829 ] } );
WriteResult({ "nInserted" : 1 })
dmReplSet:PRIMARY> db.aug29.find();
{ "_id" : ObjectId("54010c47de66cda372635186"), "loc" : [ -124.9973, 49.68829 ] }
dmReplSet:PRIMARY> db.aug29.find().pretty()
{
  "_id" : ObjectId("54010c47de66cda372635186"),
  "loc" : [
    -124.9973,
    49.68829
  ]
}
dmReplSet:PRIMARY> 

你到底在做什么?是通过一些OR映射吗?

另一方面,如果你想在MongoDB中做geospacial东西,你可能应该阅读它并注意它已经发展并且特定于MongoDB版本(http://blog.mongolab.com/2014/08/a-primer-on-geospatial-data-and-mongodb/http://myadventuresincoding.wordpress.com/2011/10/02/mongodb-geospatial-queries/