2017-01-16 6 views
0

Mongoコレクションで集約操作を実行した後、最後のステップは配列結果の長さを取得することです。

使用_idnull等しい1以上$group段階:二人ともうまく機能し、私に期待を与える

db.col.aggregate([ 
    // ... 
]).length; 

db.col.aggregate([ 
    // ..., 
    { 
    $group: { 
     _id: null, 
     length: { $sum: 1}, 
    }, 
    }, 
]); 

または.lengthメソッドを使用して今私は2つのオプションがあります結果。私はパフォーマンスの面でどちらの方が優れているのだろうかと思っています。どう思いますか?

+0

あなたのMongoDB Serverのバージョンは? – chridam

+0

@chridam私は3.2を使用しています – Khang

答えて

0

.lengthメソッドは、JS Arrayオブジェクトの属性である可能性が高いため(コードが使用しているJSエンジンに依存する可能性があります)、私は.lengthメソッドを使用します。

$groupを使用すると、mongoエンジンはすべてのデータを処理し、返されるドキュメントの数を非常に少なくすることができます。

felixによれば、小さなベンチマークを実行して、どのオプションが高速かを確認できます。

関連する問題