MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So konvertieren Sie die MongoDB-Aggregationsabfrage in Laravel MongoDB von jenssegers

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.