【发布时间】:2020-09-21 20:54:37
【问题描述】:
我正在尝试更新位于文档中另一个数组内的数组。架构是这样的:
const projectSchema = new mongoose.Schema({
stakeholders: [{
stakeholderTitle: {
type: String,
},
...
subgroup: [{
subgroupTitle: {
type: String
},
subgroupPercent: {
type: Number,
}
}]
}],
我正在尝试更新“子组”数组。我已经使用位置 $ 运算符使用我之前提出的this 问题的答案让查询在其父级(利益相关者数组)上工作。所以我的查询看起来像这样.....
await db.findOneAndUpdate({ find by the id }, { "stakeholders.$.stakeholderTitle": req.body.stakeholderTitle, ... "stakeholders.$.subgroup": req.body.subgroup })
但是,此查询不适用于“利益相关者子组”数组,并使其为空。通过mongo docs 查找位置运算符,它指出'位置 $ 运算符不能用于遍历多个数组的查询,例如遍历嵌套在其他数组中的数组的查询,因为 $ 占位符的替换是单值”,我想这可能是我的问题。
那么如何使用 findOneAndUpdate 查询来做到这一点?
【问题讨论】: