mongodb フィールド/キーごとの異なる値の数をカウントする 質問する

mongodb フィールド/キーごとの異なる値の数をカウントする 質問する

DB 内のフィールドに含まれる個別の値の数を計算するクエリはありますか。

国を表すフィールドがあり、国を表す値には 8 種類あります (スペイン、イギリス、フランスなど)

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

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

ベストアンサー1

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

殻があるdb.collection.distinct()ヘルパーも同様です:

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

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

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

結果は最大BSONサイズ(16MB)を超えてはなりません。結果が最大BSONサイズを超える場合は、集計パイプラインを使用して、演算子を使用して個別の値を取得します$group集計パイプラインを使用して個別の値を取得する

おすすめ記事