集約フレームワークメソッドを使用することと、基盤となるドライバーから提供される生の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の方法を使用してください。