MongoDB查询用于获取'n'天前创建的记录

时间:2016-05-04 10:56:55

标签: php mysql mongodb codeigniter

我有一个MySQL查询,我用它来获取27天前创建的记录。

SELECT *
FROM appointments
WHERE DATE_FORMAT(created_dt, '%m/%d/%Y') = DATE_FORMAT(DATE_SUB(SYSDATE(), INTERVAL 27 DAY), '%m/%d/%Y') 

我如何在MongoDB中执行此操作?

我正在使用codeigniter,因此为mongo_db查询+1。

1 个答案:

答案 0 :(得分:0)

取决于您的意思"创建' n'几天前"

您可以选择其中一个Comparison Query Operators

因此,如果你想在n天之前准确创建所有记录($eq),它将会是这样的。

db.appointments.find({"created_dt" : { $eq : new ISODate("2016-05-04T12:00:00Z") }});

您可以从当前日期计算日期。

注意:

我不知道您是否可以使用$eq并且只过一天并获得与当天相同的所有记录。它可以工作,但你需要先尝试这个。

如果它不起作用,你可以像这样做一个解决方法

db.appointments.find({"created_dt" : { $gte : today, $lt : nextDay}});

其中todaytoday at 00:00:00nextDaynextDay at 00:00:00(请注意$lt而不是$lte