今天在使用mongoose查询表数据的时候,发现其中一个时间格式的字段居然随着我查询居然更新了时间,甚是诧异,折腾了一下,最终问题原因锁定在default: Date.now
上,其实网上也有其他方案解决,但是好像不能使用TTL
自动删除,所以自己结合思路,不在使用default
属性,解决如下:
// CodeSchema.js
// Schema的createAt字段
createAt: {
type: Date,
index: { expires: 300 }
}
// xxx.js
// 在调用更新方法的时候传入 createAt字段
Code.findOneAndUpdate(
query,
{ $set: { value: code, createAt: Date.now() } },
{ upsert: true, new: true }
)
其他思路:
https://blog.youkuaiyun.com/madlaxnoir/article/details/100095468