sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo convertir la consulta de agregación MongoDB a Laravel MongoDB por jenssegers

Es mejor que use los métodos del marco de agregación y que también se sumerja en el objeto de colección sin procesar de MongoDB proporcionado por el controlador subyacente para hacerlo. Es una opción mucho mejor que tratar de traducir la sintaxis:

// 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
                )
            )
        )   
    ));
});

El resultado es un poco diferente del resultado de un método como .group() pero esto usa código nativo en el servidor MongoDB y no depende de la interpretación de JavaScript como .group() realmente lo hace, siendo realmente un envoltorio alrededor de mapReduce.

El resultado final es mucho más rápido y, en general, más eficiente de lo que obtendrá de la interfaz de marco nativa.

Así que use la forma nativa de MongoDB para obtener el mejor rendimiento.