.distinct() フィールドの個別の値を取得するだけでうまく機能します。実際に発生数を取得するには、これは集計フレームワークに適しています。
Collection.aggregate([
{ "$group": {
"_id": "$field",
"count": { "$sum": 1 }
}}
],function(err,result) {
});
また、.distinct() メソッドは、指定された「distinct」フィールドが実際に配列内にある場所から「abstract」を実行します。この場合、 $unwindを呼び出す必要があります ここで最初に配列要素を処理します:
Collection.aggregate([
{ "$unwind": "$array" },
{ "$group": {
"_id": "$array.field",
"count": { "$sum": 1 }
}}
],function(err,result) {
});
したがって、主な作業は基本的に $groupで行われます。 フィールド値を「グループ化」することで、「個別」と同じ意味になります。 $sum はグループ化演算子であり、この場合は1を合計するだけです。 そのコレクションのフィールドにその値が出現するたびに。