我已经构建了一个使用MongoDB聚合管道获取分页结果集的报告,如下所示:
$pipeline = array(
array('$match' => $this->_queryOptions),
array('$skip' => $this->_startingIndex),
array('$group' => array(
"_id" => array(
'username' => '$username',
'prefix' => '$prefix',
'claimNumber' => '$claimNumber'
),
"viewCount" => array('$sum' => 1),
"timestamp" => array('$max' => '$timestamp'),
"companyNumber" => array('$addToSet' => '$companyNumber'),
"policyNumber" => array('$addToSet' => '$policyNumber')
)
),
array('$sort' => array($sortBy => $this->_sortDir)),
array('$limit' => $this->_limit)
);
$results = $this->_collection->aggregate($pipeline);
这是按预期工作的。但是,我正在努力获得总计数(仅用于分页显示的目的)......好像我在没有限制的情况下运行查询并执行count($results['result'])
有没有人知道一种有效的方法,因为aggregate()方法返回原始数据而不是游标对象?
感谢先进的任何反馈!