使用NodeJS

时间:2016-06-28 00:04:09

标签: node.js mongodb

我想知道如何在MongoDB中访问嵌套数组元素 例如,如果我们有类似的东西:

{
   array1 : [
      {
         array11 : {
               name11 : "xyz"
            }
       },{
         array12 : {
             name12: "abc",
             nums : [1,2,3,4]
          }
       }
     ]
}

现在我如何访问和更新" name12"领域。 我怎样才能将元素添加到" nums"字段。

2 个答案:

答案 0 :(得分:1)

A)找到集合:我假设你想找到name12 =" abc"。

 db.mydata.find({"array1.array12.name12":"abc"}).pretty()

B)更新&使用位置运算符向nums数组添加元素:

https://docs.mongodb.com/manual/reference/operator/update/positional/

db.mydata.update({"array1.array12.name12":"abc"},
             {$set:{"array1.$.name12":"abc"} , 
              $push:{"array1.$.nums":5}
})

另外,您应该考虑重新定义架构,以便阵列具有相似的结构。它将帮助您长期更新..

答案 1 :(得分:-1)

你可以像任何传统的js数组一样访问它,在这种情况下,你可以访问数组中的对象,所以要注意语法。