猫鼬-参考-根据子文档更新父对象

时间:2020-09-16 01:58:13

标签: mongodb mongoose mongoose-populate

我没有使用子文档,而是大量独立地查询了这些模式/模型,因此我决定使用Mongoose的“ Ref”功能。用例是一个包含多个请求的Job,因此我有一个Job模式和一个Request模式,如下所示。

const jobSchema = new Schema({
    _id: {
      type: Schema.Types.UUID,
    },
    status: {
      type: String,
      enum: _.keys(jobStatus),
    },
    requestIds: [
      {
        type: Schema.Types.UUID,
        ref: 'Request',
      },
    ],
});

const request = new Schema({
 _id: {
      type: Schema.Types.UUID,
    },
    jobId: {
      type: Schema.Types.UUID,
      ref: 'Job',
    },
    status: {
      type: String,
      enum: _.keys(requestStatus),
    },
});

请求状态是独立更新的,但是作业状态取决于请求状态的完成。因此,如果所有请求均已完成,则需要将作业状态标记为已完成。为了将作业更新为“已完成”,我需要查看是否所有请求ID的状态都已完成。 我如何在Mongoose中查询/更新,最好是一次调用数据库。

0 个答案:

没有答案