gpt4 book ai didi

arrays - 如何更新 mongodb 中的嵌套数组文档

转载 作者:太空宇宙 更新时间:2023-11-04 02:11:45 24 4
gpt4 key购买 nike

我有一个看起来像这样的集合

{
"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数组的字段,特别是名称、状态。基本上,我想更新提到的字段。我已经尝试过这个查询

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'"

我不知道如何修复它。mongo shell 中的查询是什么?谢谢。

最佳答案

目前 mongoDB 中只有一个位置运算符可用。已开放功能请求 https://jira.mongodb.org/browse/SERVER-831

查看答案https://stackoverflow.com/a/14855633/2066271

关于arrays - 如何更新 mongodb 中的嵌套数组文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41760905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com