如何在mongodb中更新嵌套在数组中

时间:2013-07-19 10:14:31

标签: javascript node.js mongodb

我有这样的结构

{

  "name":"xxxxxx",

  "list":[
           {

             "listname":"XXXXX1",
              "card":[
                       {
                         "title":"xxxxxx",
                         "descip":"xxxxxxxxxx",
                         "id":"1213"
                       },
                       {
                         "title":"xxxxxx",
                         "descip":"xxxxxxxxxx",
                         "id":"1214"
                       }

              ] 

           }, 
           {
              "listname":"xxxxxx2",
              "card":[
                       {
                          "title":"xxxxxx",
                          "descip":"xxxxxxxxxx",
                          "id":"1345",
                       },
                       {
                          "title":"xxxxxx",
                          "descip":"xxxxxxxxxx",
                          "id":"1346",
                      }

              ]

           }


   ]

}

这里listname在列表数组中是唯一的,然后id在卡阵列中是唯一的。

我想在卡阵列的特定文件中插入额外的两个键值对。例如,我想在ID号1213中添加额外的键值

输出应该看起来像这样

              "card":[
                       {
                          "title":"xxxxxx",
                          "descip":"xxxxxxxxxx",
                          "id":"1213",
                          "name":"XXXXxx",
                           "age":"xxxx"
                       },
                       {
                          "title":"xxxxxx",
                          "descip":"xxxxxxxxxx",
                          "id":"1214",
                      }

                   ]

如何更新?

1 个答案:

答案 0 :(得分:0)

尝试使用mongodb positional运算符。

您的查询将类似于列表。$。id = 123