gpt4 book ai didi

javascript - Mongoose/NestJs 无法访问 createdAt,即使 {timestamps : true}

转载 作者:行者123 更新时间:2023-12-05 00:37:19 24 4
gpt4 key购买 nike

我目前正在使用 Mongoose 和 NestJs,并且在访问 createdAt 属性方面有些困难。
这是我的 user.schema.ts

@Schema({ timestamps: true})
export class User {
@Prop({ required: true })
name!: string;

@Prop({ required: true })
email!: string;
}

export const UserSchema = SchemaFactory.createForClass(User);
在我的 user.service.ts
public async getUser(
id: string,
): Promise<User> {
const user = await this.userModel.findOne({ id });

if (!user) {
throw new NotFoundException();
}

console.log(user.createdAt) // Property 'createdAt' does not exist on type 'User' .ts(2339)
}
所以基本上我已经将时间戳设置为 true,但我仍然无法访问 createdAt 属性。顺便说一句,我还有一个自定义 id 可以正常工作,所以请在我的 service.ts 中忽略它
我试过设置 @Prop() createdAt?: Date到架构,但它仍然没有工作。
我还使用 MongoMemoryServer 和 Jest 测试了这个模式,这表明它返回 createdAt。
关于为什么我无法访问 createdAt 属性的任何帮助将不胜感激!

最佳答案

我测试了你的代码,添加了 @Prop() createdAt?: Date应该可以访问createdAt .
我从您的代码中发现的唯一无法访问 createdAt 的是 id你传递给查询。 key 应该是 _id

public async getUser(
id: string,
): Promise<User> {
const user = await this.userModel.findOne({ _id: id });

if (!user) {
throw new NotFoundException();
}

console.log(user.createdAt)
}
这是我使用您的代码进行测试的屏幕截图:
https://i.imgur.com/6JzVAyz.png

关于javascript - Mongoose/NestJs 无法访问 createdAt,即使 {timestamps : true},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67799847/

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