1
嵌套數組文件我有一個集合看起來像如何更新MongoDB中
{
"Aid":12234,
"items":{
"itemId":"SP897474",
"Blocks":[
{
"blockId":"W23456",
"name":"B1",
"innerBlock":[
{
"id":"S23490",
"name":"IB1",
"state":true
},
{
"id":"S23491",
"name":"IB2",
"state":true
},
{
"id":"S23492",
"name":"IB3",
"state":true
}
],
"active":true
},
{
"blockId":"W23457",
"name":"B2",
"innerBlock":[
{
"id":"S23482",
"name":"IB1",
"state":true
},
{
"id":"S23483",
"name":"IB2",
"state":true
}
],
"active":false
}
]
},
"active":true
}
我無法更新字段是innerBlock陣列,特別是姓名,身份,因爲嵌套。基本上,我想更新上述領域.Iam已經嘗試此查詢
User.update({
"items.Blocks.innerBlock.id": req.body.id,
"Aid": req.body.Aid
}, {
"$set": {
"items.Blocks.$.InnerBlock.$.name": req.body.name
}
})
它顯示了以下
"errmsg": "Too many positional (i.e. '$') elements found in path 'items.Blocks.$.InnerBlock.$.name'"
給我不知道如何解決it.What可以在查詢時出現錯誤蒙戈殼?謝謝。
您是否嘗試過items.Blocks.InnerBlock.name有被打開的功能要求 –
是的,我試了一下。它這樣表示'「ERRMSG」的錯誤:「不能使用部分(innerBlock的「items.Blocks.innerBlock.name)來遍歷元素' –
檢查這個答案,我認爲它可以幫助[更新與貓鼬nester數組](http://stackoverflow.com/questions/23577123/update -nested-array-with-mongoose-mongodb) – JavaEvgen