我有一个计划
let AccountSchema = new Schema({
permission: { type: Schema.Types.Mixed },
type : {type : Number}
});
当我更新文档
let item = new Account({
_id : xxxxxxx,
permission : [{
'1' : '1',
'2' : '2'
}],
type : 2
});
item.save();
但是此文档仅修改类型而没有修改权限。我的计划还有很多其他列,如果我使用item.markModified('permission')以确保可以进行更新permission
,但是我不确定在每种情况下是否都需要更新permission
。我的意思是我需要在方案中输入完整的参数才能更新数据.. :(。请帮助
答案 0 :(得分:1)
使用Schema.Types.Mixed
时,您必须考虑到这是schema-less type
,这意味着Mongoose would not automatically keep track的更改类似于Number
类型。
您有责任保持对这些更改的监视并致电markModified
,以表示要猫鼬更新/保存更改。
所以这样的事情应该起作用:
let item = new Account({
permission : [{ a : 1 }],
type : 2
});
item.save();
但是此后,对权限中的对象所做的任何更改都需要为markModified
您可以找到更多详细信息以及必须提供给markModified here的实际路径