如何在 Nest.js mongoose 模型中正确键入填充参数

问题描述

我在 nest.js 应用程序中为我的 Car 实体定义了一个猫鼬模型和架构,其中字段 Brand 是对另一个集合的 ObjectId 引用有时会填充,但有时不会。我已经定义了架构,如:

export const CarSchema = new Schema({
  name: String;
  price: Number;
  brand: { type: Schema.Types.ObjectId,ref: 'Brand' },})

那里没有问题。我的问题是:因为当我检索汽车时,我有时会填充 Brand 字段,所以我必须在模型中输入 brand 属性,如下所示:

export interface CarModel extends Document {
  name: string;
  price: number;
  brand: Brand;
}

问题在于,在少数不需要填充 brand 属性的情况下,Typescript 会引发一个错误,告诉我 brand 应该是 brand 类型em>Brand 而不是字符串(当我不填充它时,属性作为 ObjectId 字符串检索)。我应该像下面这个例子一样输入模型吗?

export interface CarModel extends Document {
   name: string;
   price: number;
   brand: Brand | string;
}

或者有其他正确的方法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)