我们在为Mongo shell编写map/reduce来处理web日志时遇到了一个问题。我们让它计算手机和桌面用户的每日点击量,但当我们试图参考过去的文档来计算7天和30天的用户点击量时。如有任何帮助或建议,将不胜感激。
{
"_id" : {
"SiteName" : "All Sites",
"Date" : ISODate("2011-01-18T00:00:00Z")
},
"value" : {
"Day" : {
"AccessTypeTotal" : 9,
"AccessTypeDirect" : 0,
"AccessTypeDirectPerc" : 0,
"AccessTypeSearch" : 8,
"AccessTypeSearchPerc" : 88.88888888888889,
"AccessTypeNavigation" : 1,
"AccessTypeNavigationPerc" : 11.11111111111111
}
}
}
MongoDB Cookbook中有一篇很好的文章描述了这个过程。
如果是30天,可以这样写:
thirty_days_ago = new Date(Date.now() - 60 * 60 * 24 * 30 * 1000);
db.pageviews.mapReduce(map, reduce,
{out: pageview_results, query: {Date: {'$gt': thirty_days_ago}}});
阅读全文以更好地理解如何在您的文档中使用它