public function getSpammers() { $spammersSet = \MongoDB\Entity::raw(function ($collection) { $match = array('documentType' => 'job', 'metrics' => array('$exists' => true)); $project = array('_id' => 0, 'spammers' => '$metrics.spammers.list', 'index' => array('$const' => 0)); $unwind = '$spammers'; $group = array('_id' => '$index', 'spammers' => array('$addToSet' => '$spammers')); return $collection->aggregate(array(array('$match' => $match), array('$project' => $project), array('$unwind' => $unwind), array('$group' => $group))); }); return $spammersSet['result'][0]['spammers']; }