我需要在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 ] } }
});
上面假设createdAt
和someDate
字段都是ISO时间戳。请注意,我实际上已将您的查询重新表述如下,以便createdAt
单独出现在不等式的LHS上:
SELECT *
FROM yourTable
WHERE createdAt > someDate - INTERVAL 2 DAY;
当你必须处理日期/时间值时,我建议使用moment.js库。应该是这个:
db.collection.find({
createdAt: { $gte: { moment().subtract(2, 'days').toDate() } }
})