我正在尝试更改共享文档
即使其中一个用户终止了帐户,信息也可能与所涉及的用户有关。
考虑:
const USER = new Schema({
name: {type: String, required: true}
})
const EVENT = new Schema({
initiator: {type: Schema.Types.ObjectId, ref: 'User', required: true},
members: [{
enthusiasm: {type: Number, min: 0, max: 10}
member: {type: Schema.Types.ObjectId, ref: 'User', required: true}
}],
hideFrom: [{type: Schema.Types.ObjectId, ref: 'User'}]
})
事件数据在整个应用程序历史记录中仍然可用。尽管用户可以终止其帐户,但是仍然必须提供数据。在这种情况下,用户可能会要求从其仪表板隐藏此数据。
问题是-数据已经填充,并且启动器一旦获得populated
-如果他被删除-我将得到null
字段。
我收到的错误是:
事件验证失败:members.0.member:需要路径
member
这是对尝试将收到的null
而不是现在消失的用户保存到文档中的响应。
关于save()
此文档在填充和更改后该如何处理的任何建议?当字段为null
时,除非重新查询文档并重新填充丢失的牙齿,否则无法找到一种方法来恢复丢失的_id
。对于initiator
字段来说这可能是微不足道的,但是我看不到members
数组怎么可能。
编辑-添加镜像对象:
AlteredPopulatedEventToSave = {
initiator: null,
members: [
{
enthusiasm: 6,
member: {_id: "wrwh89242h49284h2fk23fj", name: "Member One"}
},
{
enthusiasm: 4,
member: null
}
],
hideFrom: ["wrwh89242h49284h2fk23fj"]
AlteredPopulatedEventToSave.save() // <--- error: path `initiator` is required