このスキーマを使用して Mongodb にヒットのコレクションを保存しています: { userid: ... date: ... }
2 つの日付の間のユニークな訪問者 (これらの日付の間にヒットした異なるユーザー ID を持つ訪問者) を計算したレポートを表示したいと考えています。
出力例:
訪問者数: ... ヒット数: ...
コレクションのサイズは約 1M レコードです。
私の最初のアイデアは、増分 mapreduce を実行して、日ごとの集計値を計算することです。そして、その日に 2 回目の mapreduce を実行して、最終結果を出力します。
問題は、レポートで日付の範囲を選択すると、正しいユニーク ユーザー数を計算できないことです。
日別の集計値の例: 1 日目: 1 人のユニーク ユーザー 2 日目: 2 人のユニーク ユーザー (1 日目に 2 人のユーザーのうち 1 人がヒット)
ユニーク ビジターの合計は 2 日間で 3 ですが、期間全体でユニーク ビジターは 3 ではなく 2 しかありません。
この例で一意の訪問者を計算する効率的な方法はありますか?