1. ホーム
  2. mongodb

[解決済み] mongodb count フィールド/キーごとの明確な値の数

2022-01-29 13:44:26

質問

DBのフィールドに含まれる明確な値の数を計算するクエリはありますか?

例:国名のフィールドがあり、8種類の国名がある(スペイン、イギリス、フランス、など)。

誰かが新しい国のドキュメントを追加した場合、クエリが9を返すようにしたいのですが。

グループ化し、カウントする簡単な方法はありますか?

どのように解決するのですか?

MongoDBには distinct コマンド これは、あるフィールドに対する個別の値の配列を返すものです; 配列の長さをチェックして、カウントすることができます。

シェルがあります。 db.collection.distinct() ヘルパーもあります。

> db.countries.distinct('country');
[ "Spain", "England", "France", "Australia" ]

> db.countries.distinct('country').length
4

MongoDBのドキュメントに記載されているとおりです。

結果は、最大BSONサイズ(16MB)を超えてはいけません。結果が最大 BSON サイズを超える場合は、集約パイプラインを使用して個別の値を取得します。 $group 演算子で説明されているように 集計パイプラインによる識別値の取得 .