Mongoose - 无法访问 createdAt

Posted

技术标签:

【中文标题】Mongoose - 无法访问 createdAt【英文标题】:Mongoose - can't access createdAt 【发布时间】:2021-08-31 22:34:16 【问题描述】:

我正在使用 Mongoose 创建一个 NestJs 应用程序,我目前在尝试访问 createdAt 时遇到问题,即使我已将时间戳设置为 true,我的代码如下。

product.schema.ts

@Schema(timestamps: true)
export class Product extends Document 
  @Prop( required: true )
  name!: string;

product.service.ts

public async getProduct(name: string): Promise<void> 
    const existingProduct = await this.productModel.findOne( name );

    if (!existingProduct) 
      throw new NotFoundException();
    

    existingProduct.createdAt //Property 'createdAt' does not exist on type 'Product'
  

【问题讨论】:

【参考方案1】:

仅仅因为您设置了timestamps: true 并不意味着打字稿理解这些字段应该存在。您需要将它们添加到类中,但没有 @Prop() 装饰器,以便打字稿知道这些字段存在,但 Nest 不会尝试为您重新创建字段。

【讨论】:

那么你的意思是我应该在类中使用构造函数? 我的意思是你只需要在没有@Prop() 装饰器的情况下将这两个属性添加到你的Product 类中

以上是关于Mongoose - 无法访问 createdAt的主要内容,如果未能解决你的问题,请参考以下文章

为啥我无法访问 CloudKit 中 CKRecord 的 createdAt 字段?

无法访问 Cloud Code Parse Framework 上的属性“createdAt”

无法将 createdAt 和 updatedAt 保存为日期时间值,也无法将后端保存为前端

Mongoose 获取与数组匹配的文档

Mongoose 获取与数组匹配的文档

Mongoose - 无法访问对象属性?