Obojgu lepiej jest korzystać z metod struktury agregacji, a także zagłębić się w surowy obiekt kolekcji MongoDB dostarczony z bazowego sterownika. To znacznie lepsza opcja niż próba przetłumaczenia składni:
// 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
)
)
)
));
});
Wynik jest trochę inny niż wynik metody takiej jak .group()
ale używa natywnego kodu na serwerze MongoDB i nie opiera się na interpretacji JavaScript, jak .group()
metoda faktycznie działa, będąc tak naprawdę opakowaniem wokół mapReduce.
Efekt końcowy jest znacznie szybszy, a także ogólnie bardziej wydajny niż w przypadku natywnego interfejsu frameworka.
Dlatego użyj natywnego sposobu MongoDB, aby uzyskać najlepszą wydajność.