PHP中mongodb聚合游标返回的Null集

PHP中mongodb聚合游标返回的Null集,php,mongodb,mongodb-query,pymongo,Php,Mongodb,Mongodb Query,Pymongo,MongoDB聚合查询返回空集。下面是我在php脚本中用于从MongoDB检索数据的查询。请告诉我哪里出错了 $result = $collection->aggregateCursor([[ '$match'=> [ 'date'=> [ '$gte'=>ISODate("2015-06-01T00:00:00Z"), '$lte'=>ISODate("2015-06-03T00:00:00Z")] ] ],[ '$group'=> [ '_id'=&g

MongoDB聚合查询返回空集。下面是我在php脚本中用于从MongoDB检索数据的查询。请告诉我哪里出错了

  $result = $collection->aggregateCursor([[ '$match'=> [ 'date'=> [ '$gte'=>ISODate("2015-06-01T00:00:00Z"), '$lte'=>ISODate("2015-06-03T00:00:00Z")] ] ],[ '$group'=> [ '_id'=> '$date', 'count'=> [ '$sum'=>1 ] ] ]]);
如果我在mongoDB shell.com中运行相同的查询,它将按预期显示输出

  db.mnumber.aggregate([{ $match: { date: { $gte:new ISODate("2015-06-01T00:00:00Z"), $lte:new ISODate("2015-06-03T00:00:00Z") } } },{ $group: { _id: "$date", 'count': { $sum:1 } } }])
    { "_id" : ISODate("2015-06-01T00:00:00Z"), "count" : 10000 }
    { "_id" : ISODate("2015-06-02T00:00:00Z"), "count" : 10000 }
    { "_id" : ISODate("2015-06-03T00:00:00Z"), "count" : 10000 }
收集的样本数据:
尝试生成一个对象,如下所示

$dateFrom = new MongoDate(strtotime("2015-06-01T00:00:00Z"));
$dateTo = new MongoDate(strtotime("2015-06-03T00:00:00Z"));
然后可以在聚合管道中使用它,而不是在PHP查询中使用MongoDB ISODate对象

/* Run the command cursor */
$result = $collection->aggregateCursor(
    [
        [ '$match' => [ 'date'=> [ '$gte' => $dateFrom, '$lte' =>  $dateTo ]  ] ],
        [ '$group' => [ '_id' => '$date', 'count' => [ '$sum' => 1 ] ] ]            
    ]        
);

不喜欢PHP数组语法,也不完全精通最新版本的语法(所以不确定那里的结构)。但主要是,我认为这里使用的是MongoDB日期构造函数,而不是
ISODate
,我根本找不到PHP参考。可能是您自己的函数?您好,Chridam,对MongoDate()做了更改,但现在它引发了超时错误,如下所示。在C:\wamp\www\subscriber\u details\cman.php联机中出现未捕获的异常“MongoCorSortimeoutException”,消息为“192.x.x.x:10002:读取0字节后读取超时,等待30.000000秒”71@SaikumarA在调用
aggregateCursor()
之前,请尝试设置
MongoCursor::$timeout=-1
(-1表示无超时)。有关更多信息,请参阅。嘿,谢谢各位。取得了预期的效果。
/* Run the command cursor */
$result = $collection->aggregateCursor(
    [
        [ '$match' => [ 'date'=> [ '$gte' => $dateFrom, '$lte' =>  $dateTo ]  ] ],
        [ '$group' => [ '_id' => '$date', 'count' => [ '$sum' => 1 ] ] ]            
    ]        
);