MongoDB / PHP查询 - 如果当前时间/日期在计划中


MongoDB / PHP query- if current time/date is in schedule

我有存储事件开始和结束时间的条目。我正在尝试使用 MongoDate 进行查询以查找查询当前时间发生的所有事件。

这里回答了同样的问题,但对于MongoDB而不是MySQL:PHP/MySQL查询 - 如果当前时间/日期在计划中

到目前为止,我所能找到的只是对MongoDate的反向查询:

$start = new MongoDate(strtotime("2010-01-15 00:00:00"));
$end = new MongoDate(strtotime("2010-01-30 00:00:00"));
// find dates between 1/15/2010 and 1/30/2010
$collection->find(array("ts" => array('$gt' => $start, '$lte' => $end)));

其实很简单:与其检查范围,不如检查相等性:

$now = new MongoDate();
$collection->find(array('ts' => $now));

。因为看起来您没有将事件开始和结束信息存储在不同的属性中。如果您确实愿意,请使用两个属性:"t_start"和"t_end",并仅在事件实际完成时才填充后者。应用此方案时,查询会变得更加复杂:

$collection->find(array(
  't_end'   => array('$exists' => false)
));