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()
方法后,propduration
在设置为数字时作为时间戳返回当数字大于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}
- 还尝试添加其他道具或选项,如
,但最终结果没有那么不同,因为我确实停止了获取时间戳,但返回的对象是mongoose文档,而不是普通的旧javascript对象{lean:true}
lean()
,但我仍然无法理解是什么导致了这种情况