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

Sådan konverteres MongoDB aggregeringsforespørgsel til Laravel MongoDB af jenssegers

Du er både bedre stillet ved at bruge aggregeringsrammemetoderne og også dykke ned i det rå MongoDB-samlingsobjekt, der leveres fra den underliggende driver for at gøre det. Det er en meget bedre mulighed end at prøve at oversætte syntaksen:

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

Resultatet er lidt anderledes end resultatet af en metode som .group() men dette bruger indbygget kode på MongoDB-serveren og er ikke afhængig af JavaScript-fortolkning som .group() metoden faktisk gør, er virkelig en indpakning omkring mapReduce.

Slutresultatet er meget hurtigere og generelt mere effektivt, end du får ud af den oprindelige rammegrænseflade.

Så brug den oprindelige MongoDB-måde for den bedste ydeevne.



  1. Brug blåfugl til mongoose, fik .bind er ikke en funktion

  2. Opsætning af ElastiCache Redis med Elastic BeanStalk + Django

  3. Sende en MongoDB-forespørgsel til et andet system:konvertering til JSON og derefter afkodning til BSON? Hvordan gør man det på Go-sproget?

  4. Find mongoDB-poster i batches (ved hjælp af mongoid rubin-adapter)