MongoDBで総カウント数とユニークカウント数を知りたい時

  • 2
    Like
  • 0
    Comment
More than 1 year has passed since last update.

いつもここからみたいなタイトルになってしまいましたが、よく忘れるので、備忘も兼ねて。。

総数を知りたい時

find()とcount()を使うです。

db.コレクション名.find({条件}, {対象フィールド: 1}).count()

具体的にはこんな感じ。
(5月に男性がダウンロードしたコンテンツの総数)

db.download_histories.find({"sex": "male", "created_at" : { "$gte" : ISODate("2015-05-01T00:00:00+09:00"), "$lte" : ISODate("2015-05-31T23:59:59+09:00") }}, {"contents_id" : 1}).count()

ユニーク数を知りたい時

distinct()とlengthを使うです。

db.コレクション名.distinct({対象フィールド}, {条件}).length

具体的にはこんな感じ。
(5月に男性がダウンロードしたコンテンツのユニーク数)

db.download_histories.distinct("contents_id", {"sex": "male", 
"created_at" : { "$gte" : ISODate("2015-05-01T00:00:00+09:00"), "$lte" : ISODate("2015-05-31T23:59:59+09:00") }}).length

※このクエリはフィクションであり、実在の案件・コレクションとは一切関係ありません