如何使用 mongodb 获取每天/每周/每月访问量最大的页面/条目
此解决方案适用于统计数据,但不适用于最常访问条目列表 MongoDB 存储大量指标/分析数据的方法
map/reduce 太慢了……还是不行?
谢谢
如何使用 mongodb 获取每天/每周/每月访问量最大的页面/条目
此解决方案适用于统计数据,但不适用于最常访问条目列表 MongoDB 存储大量指标/分析数据的方法
map/reduce 太慢了……还是不行?
谢谢
根据您提到的示例,创建了一个集合,其中 url 命中按小时显示。
假设示例文档是这样的
{page: "/index.html", time: Date( "Mon Apr 18 07:49:28 2011"), views: 53, tweets: 2}
您可以使用 Mongodb 的聚合框架。以下是每月汇总视图的 sudo 代码。
db.pagestats.aggregate( { $project : { month_hits : { $month : "$time" } } },
{ $group:{_id : {$month_hits:"$month_hits"},hits: { $sum: "$views" } } },
{ $sort : { "_id.hits" : 1 }} } );
有关聚合的更多详细信息,请参阅此链接。
Map-Reduce 不适用于实时查询。因此,您可以进行类似的聚合并将结果保存在临时集合中并用于实时查询。您可以执行增量 MapReduce,这样您就无需再次为整个集合运行 MapReduce。阅读此处了解更多详情。
对于这种情况,我会选择增量 MapReduce。