Mongodb Mongoose lean()正在将数字转换为时间戳

Mongodb Mongoose lean()正在将数字转换为时间戳,mongodb,mongoose,Mongodb,Mongoose,我有一个名为duration的道具,它在mongoose模式中声明为数字,目的是以秒为单位存储持续时间: const mySchema = new mongoose.Schema( { ... duration: { type: Number, required: true } ... }, { timestamps: true }, ) 使用方法findOne()并应用lean()方法后,propduration在设置为

我有一个名为
duration
的道具,它在mongoose模式中声明为
数字
,目的是以秒为单位存储持续时间:

const mySchema = new mongoose.Schema(
    {
        ...
        duration: { type: Number, required: true }
        ...
    },
    { timestamps: true },
)
使用方法
findOne()
并应用
lean()
方法后,prop
duration
在设置为数字时作为时间戳返回当数字大于1000时发生。

const myVideo = await Models.Video.findOne({ _id: videoId })
            .populate({ path: 'segment', populate: { path: 'type' } })
            .lean()
            .exec()
当我设置:
{“duration”:6000}
我得到:
{“duration”:“1970-01-01T00:00:06.000Z”}

我到目前为止所做的尝试

除了试图找到问题的根源外,我还在代码中尝试了以下内容:

  • 我尝试将Mongoose版本从5.9.15升级到5.12.7,以查看是否为此添加了修复程序,但没有任何更改
  • 尝试从架构中删除
    {timestamp:true}
    ,但也不起作用
  • 还尝试添加其他道具或选项,如
    {lean:true}
    ,但最终结果没有那么不同,因为我确实停止了获取时间戳,但返回的对象是mongoose文档,而不是普通的旧javascript对象
我的临时解决方案

我为此找到的临时解决方案是从链中删除
lean()
,但我仍然无法理解是什么导致了这种情况