https://stackoverflow.com/questions/19154639/mongodb-complex-query-on-nested-array
MongoDB 2.2 - Updating Array Nested Document
我在MongoDb中有一个文件,其结构是这样的.NESTED ARRAY。我想将$ addToSet添加到d:[“x”,“y”]中,使其成为d:[“x”,“y”,“z”]。
我已经尝试过$ elemMatch和$。但它们只能在阵列的单级工作。
{
id:1,
a:[
{
id:2,
b:[
{
id:3,
c:[
{
id:4,
d:["x","y"]
},
{
id:5,
d:["p","q"]
}
]
},
{
id:13,
c:[
{
id:14,
d:["w","q"]
},
{
id:15,
d:["i","j"]
}
]
}
]
}
]
}
获取d的查询是什么:[“x”,“y”,“z”]其中查询部分可以是.. {id:1,“a.id”:2,“abid”: 3,“abcid”:4}或者可能正在使用$ elemMatch?
需要确切的更新查询,以便将d
更新为d:[“x”,“y”,“z”];
$ addToSet或任何其他运算符将“z”添加到匹配的d:[]
问题:更新部分将如何将“$”替换为索引......
答案 0 :(得分:0)
您可以按如下方式使用$elemMatch。
{
a: {
$elemMatch: {
id: 2,
b: {
$elemMatch: {
id: 3,
c: {
$elemMatch: {
id: 4
}
}
}
}
}
}
}