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

Arrays 将元素添加到MongoDB中数组的子数组,arrays,mongodb,Arrays,Mongodb,我想创建一个mongodb文档结构,如下所示 data:[[{a:b},{b:c}],[{e:f}],[{f:g},{j:h},{i:l}]] 这个结构将允许我添加新的子数组元素,第四个元素到现有的数据数组中,在上面的示例中,如果需要的话,它包含三个子数组 我可以使用mongodbshell中的以下命令添加新的子数组元素 db.xyz.update({'id':'A01'},{$push:{data:[]}},{}) 但是,我无法找到将数据推入相应阵列的解决方案。以下命令不起作用 db.xy

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

data:[[{a:b},{b:c}],[{e:f}],[{f:g},{j:h},{i:l}]]
这个结构将允许我添加新的子数组元素,第四个元素到现有的数据数组中,在上面的示例中,如果需要的话,它包含三个子数组

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

db.xyz.update({'id':'A01'},{$push:{data:[]}},{})
但是,我无法找到将数据推入相应阵列的解决方案。以下命令不起作用

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

一次$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"
         }
      ]
   ]
}

为了检索数据中第一个数组的第一个元素,我正在尝试db.xyz.find({id':'A01'},{data.0:{$slice:1}),但无法获取它。我在尝试db.xyz.find({id:'A01'},{data:{$slice:1})时获取第一个数组的所有数组元素。如何获取第一个数组的第一个元素。@SatyaNarayana您可以这样做:db.xyz.aggregate([{$match:{u id:{A01'},{$project:{$data:{$arrayElemAt[$data],0]},0]}]))