猫鼬保存填充的文档,其中至少有1个需要死亡的参考文件

时间:2018-10-16 16:39:08

标签: mongodb mongoose

我正在尝试更改共享文档

即使其中一个用户终止了帐户,信息也可能与所涉及的用户有关。

考虑:

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

0 个答案:

没有答案