2
我一直试图使用带有聚合框架的PHP MongoDB驱动程序在管道进入$组之前过滤几个日期,但匹配没有执行在日期上进行任何过滤,但在字符串和整数上进行过滤时,它可以很好地工作
这里是我的管道阵列和代码:
$date = new DateTime(); $date->sub(new DateInterval('PT' . $hours . 'H')); $mdate = new MongoDate($date->getTimestamp()); $ops = array( array('$match') => array( 'whenField' => array( '$gt' => $mdate ) ) );
$结果= $这个 - >收藏 - >汇总($ OPS);
这应该返回我收藏中'whenField'在过去3小时内的所有文档,但它会返回我收藏中的每个文档。然后,我可以将'$ gt'切换为'$ lt',并且它还返回集合中的每个文档。我把这个完全相同的匹配数组作为过滤器,并使用find($filter)
,它正确过滤。日期比较是否与聚合框架$匹配不一致或者我是否犯过某种错误?
...我无法相信我错过了。谢谢! – Marogian