这是我的架构代码当前的样子:
const ItemSchema = {
name: String,
};
const RefSchema = {
active: Boolean,
items: [ItemSchema],
};
const TopLevelSchema = new mongoose.Schema({
refs: [RefSchema],
...
}, { timestamps: true });
我想根据其_id
更新其中一项,所以我写道:
const $set = _.mapKeys(data, (v, k) => `refs.items.$.${k}`);
await this.findOneAndUpdate(
{ 'refs.items._id': iid },
{ $set },
);
我得到的是一个错误:
Cannot create field 'items' in element [...]
是否可以通过这种方式更新嵌套数组?我知道查询{ 'refs.items._id': iid
可以找到该项目,但是更新它存在问题。