在MongoDB中将元素添加到数组的子数组中

时间:2017-01-03 11:48:08

标签: arrays mongodb

我想创建一个如下所示的mongodb文档结构。

data:[[{a:b},{b:c}],[{e:f}],[{f:g},{j:h},{i:l}]]

这个结构允许我在现有的数据数组中添加新的子数组元素,第四个元素,如果需要,在上面的例子中包含三个子数组。

我可以使用mongodb shell中的以下命令添加新的子数组元素。

db.xyz.update({'id':'A01'},{$push:{data:[]}},{})

但是,我无法找到将数据推送到各个阵列的解决方案。以下命令无效。

db.xyz.update({'id':'A01'},{$push:{data[0]:{$push:{a:b}}}},{})

1 个答案:

答案 0 :(得分:1)

单个$ push应该足够了。试试这个:

db.xyz.update({'id':'A01'}, {$push: {"data.0": {a: "b"}}})

结果:

{
   "_id":ObjectId("586b907a4979a26deaacf4ad"),
   "data":[
      [
         {
            "a":"b"
         },
         {
            "b":"c"
         },
         {
            "a":"b"
         }
      ],
      [
         {
            "e":"f"
         }
      ],
      [
         {
            "f":"g"
         },
         {
            "j":"h"
         },
         {
            "i":"l"
         }
      ]
   ]
}