我想知道如何在MongoDB中访问嵌套数组元素 例如,如果我们有类似的东西:
{
array1 : [
{
array11 : {
name11 : "xyz"
}
},{
array12 : {
name12: "abc",
nums : [1,2,3,4]
}
}
]
}
现在我如何访问和更新" name12"领域。 我怎样才能将元素添加到" nums"字段。
答案 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数组一样访问它,在这种情况下,你可以访问数组中的对象,所以要注意语法。