Budete na tom oba lépe, když použijete metody agregačního rámce a také se ponoříte do surového objektu kolekce MongoDB poskytnutého ze základního ovladače. Je to mnohem lepší možnost než pokus o překlad syntaxe:
// 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
)
)
)
));
});
Výsledek se trochu liší od výsledku metody jako .group()
ale toto používá nativní kód na serveru MongoDB a nespoléhá se na interpretaci JavaScriptu, jako je .group()
metoda ve skutečnosti dělá, protože je ve skutečnosti obalem kolem mapReduce.
Konečný výsledek je mnohem rychlejší a také obecně efektivnější, než jaký získáte z nativního rozhraní frameworku.
Pro nejlepší výkon tedy použijte nativní způsob MongoDB.