我试图从 MongoDB 收回我的 TelegramEntity 并且无法检索带有adverts的数组。我能做些什么来解决这个问题?
电报实体.ts:
import { prop, getModelForClass, modelOptions } from "@typegoose/typegoose";
export class AdvertSubscriptionEntity {
@prop({ type: String, required: true, select: true })
public location!: string;
@prop({ type: Boolean })
public lessOrEqual?: boolean;
@prop({ type: Number })
public price?: number;
@prop({ type: Boolean, default: true })
public active?: boolean;
constructor(opts?: Partial<AdvertSubscriptionEntity>) {
if (opts) {
Object.assign(this, opts);
}
}
}
@modelOptions({ schemaOptions: { collection: "telegrams" } })
export class TelegramEntity {
@prop({ type: String })
public username?: string;
@prop({ type: Number, required: true })
public chatId!: number;
@prop({
type: () => [AdvertSubscriptionEntity],
_id: false,
select: true
})
public adverts?: AdvertSubscriptionEntity[];
}
export const TelegramModel = getModelForClass(TelegramEntity);
这是我找到我的 tg 行的方法:
return await TelegramModel
.findOne(filter, undefined, options)
.exec();
所以结果:{"_id":"<ObjectId>","username":"<username>","chatId": <id> ,"__v":0}
我的 package.json:
"@typegoose/typegoose": "8.2",
"mongoose": "6",