【问题标题】:how to use getter or setter with mongoose timestamps?如何使用带有猫鼬时间戳的getter或setter?
【发布时间】:2022-01-16 21:30:12
【问题描述】:

我想将getter 或setter 用于架构(猫鼬架构)中的时间戳字段,以便在从数据库中获取这些日期格式时更改它们。

let schema = new mongoose.Schema(
     {
        name: String,
        dob: {
                type: Date,
                get: (date) => {
                  if (date) return date.toISOString().split("T") [0];
                },
          },
     },
     {
          timestamps: true,
     }
);

对此有明确的解决方案吗?提前致谢。

【问题讨论】:

  • 你能把你的型号的代码贴出来吗?您是否尝试过实现 getter/setter?

标签: javascript mongodb mongoose


【解决方案1】:

我发现这个解决方案效果很好。


let schema = new mongoose.Schema(
     {
        name: String,
        dob: {
                type: Date,
                get: (date) => {
                  if (date) return date.toISOString().split("T") [0];
                },
        },

        createdAt: {
                type: Date,
                get: (date) => timeSince(date),
        }
        updatedAt: {
                type: Date,
                get: (date) => timeSince(date),
        },
     },
     {
       timestamps: true,
       toJSON: { getters: true, virtuals: true },
     }
);

timeSince 是我定义的函数。 当我获取它时,我使用模型的 json 版本。

猜你喜欢
  • 1970-01-01
  • 2014-07-14
  • 2017-09-04
  • 2019-06-14
  • 1970-01-01
  • 1970-01-01
  • 2019-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多