我继承了一个Mongo集合,它将日期存储为字符串(例如“2020-11-18”),而不是存储为BSON日期。我有一个getter可以将这个字符串转换为js日期,但我希望按日期范围查询集合,如下所示:
const Things = mongoose.Model('Thing',
{
date: { type: String, get v => new Date(v) }
},
{
toJSON: { getters: true },
toObject: { getters: true },
}
)
Things.find({ date: { $gt: new Date("2020-11-17"), $lt: new Date("2020-11-19") } })
在执行find查询之前,getter似乎没有应用于文档。有什么办法可以做到这一点吗?
如本文件所述:
null
因此date
getter将在find()方法执行之后立即运行。否则,如何在找到日期本身之前更改日期的表示形式!
换句话说:
Things.find({ date: { $gt: new Date("2020-11-17"), $lt: new Date("2020-11-19") } })
// getter will run here
.then((queryResults) =>{
})