sql >> データベース >  >> NoSQL >> MongoDB

jenssegersによってMongoDB集計クエリをLaravelMongoDBに変換する方法

    集約フレームワークメソッドを使用することと、基盤となるドライバーから提供される生のMongoDBコレクションオブジェクトに飛び込むことの両方をお勧めします。構文を翻訳しようとするよりもはるかに優れたオプションです:

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

    結果は、.group()のようなメソッドの結果とは少し異なります。 ただし、これはMongoDBサーバーでネイティブコードを使用し、.group()のようなJavaScriptの解釈に依存しません。 メソッドは実際に機能し、実際にはmapReduceのラッパーです。

    最終結果は、ネイティブフレームワークインターフェイスから得られるよりもはるかに高速であり、一般的に効率的です。

    したがって、最高のパフォーマンスを得るには、ネイティブのMongoDBの方法を使用してください。



    1. mongocsharpdriver 2.7.0を使用して(認証を使用して)MongoDbに接続できません

    2. Javaからmongoadminコマンドを実行する方法

    3. Pymongoアグリゲーション-アグリゲーション用のPythonリストを渡す

    4. django:redis:CommandError:サーバーの実行に必要なASGI_APPLICATIONを設定していません