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
。集計パイプラインを使用して個別の値を取得する。