MongoDB と Map/Reduce を使用して、ユーザーのサイト訪問を人口統計別にグループ化する良い方法を見つけようとしています。次のコレクションがあります。
サイト訪問 - 例:
{
userId: '184792',
resource: '/example/foo',
visitTime: ISODate(...)
}
ユーザー プロファイル - 例:
{
userId: '184792',
demo: '18-30',
city: 'Austin',
state: 'TX',
...
}
日別または月別のサイト訪問数を示すレポートを作成したいと考えていました。ただし、サイト訪問で Map/Reduce を実行すると、人口統計情報ではなく userId にしかアクセスできないため、人口統計に基づいてキーを発行する方法がありません。実際、State などのユーザー属性でグループ化する場合、それも不可能です。
MongoDB でこの問題を解決するベスト プラクティスの方法を知っている人はいますか? すべてのサイト訪問ドキュメントですべてのユーザー属性を複製する必要がありますか? 複数のクエリを使用してコレクションに参加できるアプリケーション コード内で何らかのタイプの再削減を行う必要がありますか? それとも、この種の問題を解決するために間違ったツールを使用しているだけですか?
提案をありがとう。