我有条目存储事件的开始和结束时间。我正在尝试使用MongoDate查询查找当前查询时发生的所有事件。
这里回答了同样的问题,但是对于MongoDB而不是MySQL: PHP / MySQL query - if current time/date is in schedule
到目前为止,我所能找到的只是对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)));
答案 0 :(得分:0)
实际上很简单:不是检查范围,只需检查是否相等:
$now = new MongoDate();
$collection->find(array('ts' => $now));
...因为您看起来不会将事件开始和结束信息存储在不同的属性中。如果您真的想要,请使用两个属性:'t_start'和't_end',并且仅在事件实际完成时才填充后者。应用此方案时,查询会变得更复杂:
$collection->find(array(
't_end' => array('$exists' => false)
));