public function actorCount()
{
$base_match = [];
if ($this->has_lrs) {
$base_match['lrs_id'] = new \MongoId($this->lrs);
}
$count_array = ['mbox' => '', 'openid' => '', 'mbox_sha1sum' => '', 'account' => ''];
$count_array['mbox'] = $this->db->statements->aggregate([['$match' => array_merge($base_match, ['statement.actor.mbox' => ['$exists' => true]])], ['$group' => ['_id' => '$statement.actor.mbox']], ['$group' => ['_id' => 1, 'count' => ['$sum' => 1]]]]);
$count_array['openid'] = $this->db->statements->aggregate([['$match' => array_merge($base_match, ['statement.actor.openid' => ['$exists' => true]])], ['$group' => ['_id' => '$statement.actor.openid']], ['$group' => ['_id' => 1, 'count' => ['$sum' => 1]]]]);
$count_array['mbox_sha1sum'] = $this->db->statements->aggregate([['$match' => array_merge($base_match, ['statement.actor.mbox_sha1sum' => ['$exists' => true]])], ['$group' => ['_id' => '$statement.actor.mbox_sha1sum']], ['$group' => ['_id' => 1, 'count' => ['$sum' => 1]]]]);
$count_array['account'] = $this->db->statements->aggregate([['$match' => array_merge($base_match, ['statement.actor.account' => ['$exists' => true]])], ['$group' => ['_id' => ['accountName' => '$statement.actor.account.name', 'accountHomePage' => '$statement.actor.account.homePage']]], ['$group' => ['_id' => 1, 'count' => ['$sum' => 1]]]]);
$summary = 0;
foreach ($count_array as $key => $val) {
if (isset($val['result'][0])) {
$summary += $val['result'][0]['count'];
}
}
return $summary;
}