MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment convertir la requête d'agrégation MongoDB en Laravel MongoDB par jenssegers

Vous feriez mieux d'utiliser les méthodes du framework d'agrégation et de plonger dans l'objet brut de collection MongoDB fourni par le pilote sous-jacent pour le faire. C'est une bien meilleure option que d'essayer de traduire la 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
                )
            )
        )   
    ));
});

Le résultat est un peu différent du résultat d'une méthode comme .group() mais cela utilise du code natif sur le serveur MongoDB et ne repose pas sur l'interprétation JavaScript comme le .group() fait réellement, étant vraiment un wrapper autour de mapReduce.

Le résultat final est beaucoup plus rapide et généralement plus efficace que ce que vous obtiendrez de l'interface du framework natif.

Utilisez donc la méthode native MongoDB pour obtenir les meilleures performances.