gpt4 book ai didi

nestjs - 在 NestJs + Typegoose 中将 _id 替换为 id

转载 作者:行者123 更新时间:2023-12-04 10:22:17 28 4
gpt4 key购买 nike

我使用 NestJs + Typegoose。如何在 NestJs + Typegoose 中将 _id 替换为 id?我没有找到一个明确的例子。我尝试了一些东西,但没有任何结果。

@modelOptions({
schemaOptions: {
collection: 'users',
},
})
export class UserEntity {
@prop()
id?: string;

@prop({ required: true })
public email: string;

@prop({ required: true })
public password: string;

@prop({ enum: UserRole, default: UserRole.User, type: String })
public role: UserRole;

@prop({ default: null })
public subscription: string;
}
@Injectable()
export class UsersService {
constructor(
@InjectModel(UserEntity) private readonly userModel: ModelType<UserEntity>,
) {}

getOneByEmail(email: string) {
return from(
this.userModel
.findOne({ email })
.select('-password')
.lean(),
);
}
}

最佳答案

更新默认值的另一种方式 _idid是通过覆盖 modelOptions 装饰器中的 toJSON 方法。

@modelOptions({
schemaOptions: {
collection: 'Order',
timestamps: true,
toJSON: {
transform: (doc: DocumentType<TicketClass>, ret) => {
delete ret.__v;
ret.id = ret._id;
delete ret._id;
}
}
}
})
@plugin(AutoIncrementSimple, [{ field: 'version' }])
class TicketClass {

@prop({ required: true })
public title!: string

@prop({ required: true })
public price!: number

@prop({ default: 1 })
public version?: number
}


export type TicketDocument = DocumentType<TicketClass>


export const Ticket = getModelForClass(TicketClass);



关于nestjs - 在 NestJs + Typegoose 中将 _id 替换为 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60804946/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com