猫鼬-更新2级嵌套数组

时间:2019-06-15 12:11:08

标签: node.js mongodb mongoose

这是我的架构代码当前的样子:

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可以找到该项目,但是更新它存在问题。

0 个答案:

没有答案