Es ist besser, wenn Sie die Aggregation-Framework-Methoden verwenden und auch in das rohe MongoDB-Erfassungsobjekt eintauchen, das vom zugrunde liegenden Treiber bereitgestellt wird, um dies zu tun. Es ist eine viel bessere Option, als zu versuchen, die Syntax zu übersetzen:
// 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
)
)
)
));
});
Das Ergebnis unterscheidet sich ein wenig vom Ergebnis einer Methode wie .group()
Dies verwendet jedoch nativen Code auf dem MongoDB-Server und verlässt sich nicht auf die JavaScript-Interpretation wie .group()
-Methode tatsächlich tut, da sie eigentlich ein Wrapper um mapReduce ist.
Das Endergebnis ist viel schneller und im Allgemeinen auch effizienter, als Sie es mit der nativen Framework-Schnittstelle erreichen werden.
Verwenden Sie also die native MongoDB-Methode für die beste Leistung.