MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come convertire la query di aggregazione MongoDB in Laravel MongoDB di jensegers

È meglio utilizzare i metodi del framework di aggregazione e anche immergersi nell'oggetto di raccolta MongoDB grezzo fornito dal driver sottostante per farlo. È un'opzione molto migliore rispetto al tentativo di tradurre la sintassi:

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

Il risultato è leggermente diverso dal risultato di un metodo come .group() ma questo utilizza il codice nativo sul server MongoDB e non si basa sull'interpretazione JavaScript come .group() metodo lo fa effettivamente, essendo davvero un wrapper attorno a mapReduce.

Il risultato finale è molto più veloce e generalmente anche più efficiente di quello che otterrai dall'interfaccia del framework nativa.

Quindi usa il modo nativo MongoDB per le migliori prestazioni.