2011-04-07 149 views
0

当我保存它之前登录的客体的权利,它看起来像这样:在MongoDB中嵌套数组?

{ 
    "type": "events", 
    "labels": [ 
     "abc", 
     "123" 
    ], 
    "keywords": [ 
     [ 
      "a", 
      "b", 
      "c", 
      "d", 
      "e" 
     ], 
     [ 
      "1", 
      "2", 
      "3", 
      "4", 
      "5" 
     ] 
    ], 
    "_id": "4d9ddac669cb3bf5e855a366" 
} 

但当时如果我进入蒙戈外壳可以节省这样的...

{ 
    "_id": ObjectId("4d9ddac669cb3bf5e855a366"), 
    "keywords": [ 

    ], 
    "labels": [ 
     "abc", 
     "123" 
    ], 
    "type": "events" 
} 

什么想法?

回答

1

储蓄直接在MongoDB的外壳保持嵌套结构:

{ 
    "_id" : "4d9ddac669cb3bf5e855a366", 
    "type" : "events", 
    "labels" : [ 
     "abc", 
     "123" 
    ], 
    "keywords" : [ 
     [ 
      "a", 
      "b", 
      "c", 
      "d", 
      "e" 
     ], 
     [ 
      "1", 
      "2", 
      "3", 
      "4", 
      "5" 
     ] 
    ] 
} 

而且据我所知,所有的官方驱动正确处理嵌套数组。这听起来像Node中的BSON编写器可能会跳过外部数组。

你可以运行一些类似的测试,在shell和Node中保存相同的东西,看看它们是否有所不同?

+0

通过壳插入它工作正常。我在Node内部的Mongo上使用Mongoose。 – fancy 2011-04-08 01:53:03