Mongodb: フィールド内の個別の値をカウントする方法
次のメソッドを使用して、MongoDB の特定のフィールド内の個別の値をカウントできます。
方法 1: 個別の値のリストを検索する
db.collection.distinct( 'field_name' )
方法 2: 個別の値の数を見つける
db.collection.distinct( 'field_name' ).length
次の例は、次の文書を使用して収集チームで各方法を使用する方法を示しています。
db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 }) db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 22 }) db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 }) db.teams.insertOne({team: " Rockets ", position: " Forward ", points: 26 }) db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
例 1: 個別の値のリストを検索する
次のコードを使用して、「チーム」フィールド内の個別の値のリストを検索できます。
db.teams.distinct( 'team' )
このクエリは次の結果を返します。
['Cavs', 'Mavs', 'Rockets']
結果には、すべてのドキュメントの 3 つの異なるチーム名が表示されます。
次のコードを使用して、「位置」フィールド内の個別の値のリストを検索することもできます。
db.teams.distinct( 'position' )
このクエリは次の結果を返します。
['Center', 'Forward', 'Guard']
注: MongoDB は、デフォルトで個別の値をアルファベット順に並べ替えます。
例 2: 一意の値の数を求める
次のコードを使用して、「チーム」フィールド内の個別の値の数をカウントできます。
db.teams.distinct( 'team' ).length
このクエリは次の結果を返します。
3
これは、「チーム」フィールドに3 つの異なる値があることがわかります。
次のコードを使用して、「ポイント」フィールドの一意の値の数をカウントすることもできます。
db.teams.distinct( 'points' ).length
このクエリは次の結果を返します。
5
これは、「ポイント」フィールドに5 つの異なる値があることがわかります。
注:別の関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、MongoDB で他の一般的な操作を実行する方法について説明します。
MongoDB: グループ化してカウントする方法
MongoDB: 複数のフィールドでグループ化する方法
MongoDB: コレクション内の最大値を見つける方法