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: コレクション内の最大値を見つける方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です