如何在当前日期字段中添加天数以比较日期范围?



我需要在MongoDB中做以下MySql方法:

SELECT * FROM table T WHERE DATE_ADD(T.createdAt, INTERVAL 2 DAY) > someDate;

我在考虑聚合、表达式等,但我找不到解决这个问题的方法。

提前感谢!

您可以在这里使用$add:

db.yourCollection.find({
    "createdAt": { $gt: { $add: [ "$someDate", -1000 * 3600 * 24 * 3 ] } }
});

上面假设createdAtsomeDate字段都是ISO时间戳。请注意,我实际上已将您的查询重新表述如下,以便createdAt单独出现在不等式的LHS上:

SELECT *
FROM yourTable
WHERE createdAt > someDate - INTERVAL 2 DAY;

当你必须处理日期/时间值时,我建议使用moment.js库。应该是这个:

db.collection.find({
   createdAt: { $gte: { moment().subtract(2, 'days').toDate() } } 
})

最新更新