Mongoose查询即使在不期望的情况下也会返回值——使用时间截止值



我有一个Mongo实例的Mongoose查询,其中有一个DB,其中包含一组记录,我想在其中获取所有"stripe.trialEnd"比当前时间旧但"stripe.isPayd"值为false的文档。我写了这个查询,它似乎根据isPayed值选择了fine,但总是会为截止值选择一个值。我正在寻找如何使此查询正确工作。

let cutoff = new Date();
Company.find({'stripe.trialEnd': {$lt: cutoff}, 'stripe.isPaid': { '$in': ['false', false]} })

DB文档示例

{
_id: <123abc>
stripe: {
isPaid: false,
trialEnd: 1608943761 // Epoch time
}
...
}

我模仿了一篇类似的帖子:用猫鼬和日期查询

我认为我解决了这个问题,所以mongoose没有将日期转换为epoch时间,因此比较一直返回false,并给我结果。我改变了创建日期的方式,给了我下面的历元时间,这似乎解决了这个问题。

let cutoff = Date.now();

最新更新