我正在尝试使用聚合函数从 Mongo 集合中获取一些数据,但它给了我 MongoCursorTimeoutException。我试图一次只选择 50 条记录,并且该集合有超过 1700 万条记录。这是从 PHP 完成的,我的代码如下:
$data = $my_collection->aggregate(array(
array('$match'=>$filter_query),
array('$group'=>array('_id'=>'$email')),
array('$skip'=>$offset),
array('$limit'=>$per_page)
));
$filter_query 是另一个包含时间图的数组,就像
Array
(
[timestamp] => Array
(
[$gt] => 1383890400
[$lt] => 1384495200
)
)
我不确定为什么会发生这种情况,因为我试图只获取 50 条记录。我认为攻击是在选择所有记录后执行的,它导致了错误。除了攻击性之外,还有什么更好的方法来做到这一点?
我可以将超时设置为 -1,但这是一个不错的选择,因为驱动程序将永远等待获得初始响应?