提问者:小点点

猫鼬在寻找之前应用吸气剂


我继承了一个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似乎没有应用于文档。有什么办法可以做到这一点吗?


共1个答案

匿名用户

如本文件所述:

null

因此dategetter将在find()方法执行之后立即运行。否则,如何在找到日期本身之前更改日期的表示形式!

换句话说:

Things.find({ date: { $gt: new Date("2020-11-17"), $lt: new Date("2020-11-19") } })
    // getter will run here
    .then((queryResults) =>{
      
    })