mongoDB distinctした結果をカウントする

mongoDB distinctした結果をカウントする

mongoDBで、distinctした結果をカウントする手順を記述してます。結果の長さを「length」で取得することで可能です。実際に、実行した結果も掲載してます。

環境

  • OS CentOS Stream release 9
  • MongoDB 6.0.2

手順

distinctした結果をカウントするには、「db.コレクション名.distinct( “プロパティ名” ).length」を使用します。

db.コレクション名.distinct( "プロパティ名" ).length

実際に、以下のデータベース「hoge」にある「foo」というコレクション(テーブル)のドキュメント(レコード)を使用して、重複している値を除いて、カウントして表示してみます。

> use hoge

> db.foo.find()

{ "_id" : ObjectId("61b6dbe43d393774a1cf22cb"), "name" : "itiro", "age" : 10, "gender" : "m" }
{ "_id" : ObjectId("61b6dbe83d393774a1cf22cc"), "name" : "jiro", "age" : 20, "gender" : "m" }
{ "_id" : ObjectId("61b6dbed3d393774a1cf22cd"), "name" : "saburo", "age" : 30, "gender" : "m" }
{ "_id" : ObjectId("61b6dc4c3d393774a1cf22ce"), "name" : "jiro", "age" : 25, "gender" : "f" }
{ "_id" : ObjectId("61b6dc503d393774a1cf22cf"), "name" : "jiro", "age" : 30, "gender" : "x" }

表示してみます。

>  db.foo.distinct( 'name' ).length
3

重複している値がカウントされていることが、確認できます。