我试图找出一种使用 MongoDB 和 Map/Reduce 按人口统计对用户站点访问进行分组的好方法。我有以下收藏:
实地考察 - 示例:
{
userId: '184792',
resource: '/example/foo',
visitTime: ISODate(...)
}
用户配置文件 - 示例:
{
userId: '184792',
demo: '18-30',
city: 'Austin',
state: 'TX',
...
}
我想生成一份报告,显示每天或每月按人口统计的网站访问次数。但是,如果我对站点访问进行 Map/Reduce,我只能访问 userId,而不是人口统计信息,因此我无法根据人口统计信息发出密钥。事实上,如果我想按任何用户属性(例如 State)进行分组,那也是不可能的。
有谁知道在 MongoDB 中解决这个问题的最佳实践方法是什么?我应该复制每个站点访问文档中的所有用户属性吗?我应该在应用程序代码中进行某种类型的重新减少,我可以在其中使用多个查询加入集合吗?还是我只是使用错误的工具来解决此类问题?
感谢您的任何建议。