Mongoose RefPath,运行 populate() 与 NestJS

Mongoose RefPath, running populate() with NestJS

我使用 Dynamic ref 通过 Schema 向 mongoose 注册。我按照此处看到的文档进行操作: https://mongoosejs.com/docs/populate.html#dynamic-ref

@Schema({ collection: 'quotations' })
export class QuotationEntity {
  
  @Prop({ 
    required: true,
    enum: {
      values: ['PersonalClientEntity', 'CommercialClientEntity'],
      message: 'Please supply a valid client type.  Allowed: \'PersonalClientEntity\' or \'CommercialClientEntity\'.'
    },
    type: String
  })
  clientType: String;

  @Prop({ type: MongooseSchema.Types.ObjectId, refPath: 'ClientType', required: true })
  clientRef: Types.ObjectId;
}

所以我在clientRef字段下保存了一个ObjectId,需要引用clientType字段。所以当我使用 populate() 方法时,它需要填充 'PersonalClientEntity' 或 'CommercialClientEntity'.

所以我运行下面的查询:

await this._model.find({ companyRef: companyId }).populate('clientRef').exec();

这不会填充任何内容。当我替换 Schema 中的 ref 并传入实际的正确引用时,如下所示:

@Prop({ type: MongooseSchema.Types.ObjectId, ref: 'PersonalClientEntity', required: true })
  clientRef: Types.ObjectId;

那么populate()方法就完美了。我是在使用 refPath 的架构中做错了什么,还是遗漏了其他内容?

好的,所以在离开这个问题并回来后,我看到了我的错误。麻木的我,拼写错误

这是我的引用路径:

refPath: 'ClientType'

这是我的模型:

clientType: String;

看到问题了吗?看到问题了吗? 是啊,所以我想踢自己。