И двамата е по-добре да използвате методите на рамката за агрегиране и да се потопите в необработения обект за събиране на MongoDB, предоставен от базовия драйвер, за да го направите. Това е много по-добър вариант от опитите за превод на синтаксиса:
// Returns the original Mongo Result
$result = DB::collection('changes')->raw(function($collection)
{
return $collection->aggregate(array(
array(
'$group' => array(
'_id' => '$field',
'count' => array(
'$sum' => 1
)
)
)
));
});
Резултатът е малко по-различен от резултата на метод като .group()
но това използва естествен код на MongoDB сървъра и не разчита на интерпретация на JavaScript като .group()
всъщност го прави, тъй като всъщност е обвивка около mapReduce.
Крайният резултат е много по-бърз и като цяло по-ефективен, отколкото ще получите от интерфейса на родната рамка.
Затова използвайте собствения начин на MongoDB за най-добра производителност.