sql >> Databáze >  >> NoSQL >> MongoDB

Jak převést agregační dotaz MongoDB na Laravel MongoDB od jenssegers

Budete na tom oba lépe, když použijete metody agregačního rámce a také se ponoříte do surového objektu kolekce MongoDB poskytnutého ze základního ovladače. Je to mnohem lepší možnost než pokus o překlad 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
                )
            )
        )   
    ));
});

Výsledek se trochu liší od výsledku metody jako .group() ale toto používá nativní kód na serveru MongoDB a nespoléhá se na interpretaci JavaScriptu, jako je .group() metoda ve skutečnosti dělá, protože je ve skutečnosti obalem kolem mapReduce.

Konečný výsledek je mnohem rychlejší a také obecně efektivnější, než jaký získáte z nativního rozhraní frameworku.

Pro nejlepší výkon tedy použijte nativní způsob MongoDB.



  1. bson.D vs bson.M pro vyhledávací dotazy

  2. MongoDB najde časové období, pokud se překrývá s jinými daty

  3. Aktualizujte pole MongoDB pomocí hodnoty jiného pole

  4. Jak nakonfigurovat celer-redis v projektu django na microsoft azure?