使用PHP的日期范围发送MongoDB聚合

时间:2018-01-10 10:00:04

标签: php mongodb aggregation

我正在尝试从我的Laravel应用程序发送一个mongodb聚合,它只聚合设置日期范围内的数据。该应用程序有一个date range picker,它返回fromDate和toDate,我将其转换为ISODate格式,而不是将变量传递到聚合管道,如下所示:

private function getMongoData($fromDate = null, $toDate = null){

   $collection = (new Client())->database->collection;

   $fromDate = "ISODate('".$fromDate."')";
   $toDate = "ISODate('".$toDate."')";


   $pipeline = [
       [
           '$match' => [
               'event_date' => ['$gt' => $fromDate, '$lt' => $toDate],
           ],
       ],
   ];

   $result = $collection->aggregate($pipeline)->toArray();

上面只是聚合的匹配阶段,因为没有它,其余的聚合似乎工作正常。使用此日期范围,它返回一个空数组

这是我的应用目前发送给mongo的内容:

event_date: {$gt: "ISODate('2017-01-10T00:00:00+01:00')", $lt: "ISODate('2018-01-10T23:59:59+01:00')"}

我是php和mongo的新手,这场斗争给我带来了一些严重的麻烦,所以我很感激任何关于此的建议

0 个答案:

没有答案