Mongodb 如何向“当前日期”字段添加天数,以便能够比较日期范围
我需要在MongoDB中执行以下MySql方法:Mongodb 如何向“当前日期”字段添加天数,以便能够比较日期范围,mongodb,Mongodb,我需要在MongoDB中执行以下MySql方法: SELECT * FROM table T WHERE DATE_ADD(T.createdAt, INTERVAL 2 DAY) > someDate; 我在考虑聚合、表达式等,但我找不到一种方法来实现这一点 提前谢谢 您可以在此处使用$add: db.yourCollection.find({ "createdAt": { $gt: { $add: [ "$someDate", -100
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
会自动出现在不等式的左侧:
选择*
从你的桌子上
其中createdAt>someDate-间隔2天;
当您必须使用日期/时间值时,我建议使用s库。这是一个:
db.collection.find({
createdAt: { $gte: { moment().subtract(2, 'days').toDate() } }
})
我认为不需要示例文档,因为我的问题是如何将MySQL查询转换为Mongodb查询。基本上,查找字段
createdAt+days
大于somedate
的文档。如果不想在查询中执行此操作,可以在客户端中从somedate
减去2天。所以只需在查询中匹配大于条件即可。添加负值可能会让人困惑(尽管对于软件开发人员来说应该不会有问题)。您也可以使用$subtract()
这在Mongo shell中也可以吗?@TimBiegeleisen是的,如果您之前运行load(“\moment.js”)
。感谢您花点时间回复我的评论;刚刚学到了一些新东西。