我是MongoDB的新手。 我如何检查我的机器是否支持Mapreduce? map-reduce的代码在另一台机器上工作,但不在我的机器上。
答案 0 :(得分:1)
Map-reduce只是一个过程,而不是任何特定的服务或库。 如果您正在进行mongoDB的基本查询,如...
> db.collectionname.find()
您可以轻松地将map-reduce代码实现到同一个shell中......
让我解释MongoDB cookbook的基本示例。
假设您的数据文档(在sql行中)如下所示。
> db.pageviews.find()
{
"url" : "http://example.com/photos",
"user_id" : ObjectID('4be1c916e031933119d78b30'),
"date": "Wed May 05 2010 15:37:58 GMT-0400 (EDT)"
}
这是任何网站的综合浏览量文档。
该解决方案要求按天分组浏览量,然后计算用户访问总次数以及当天唯一身份访问次数。
> map = function() {
day = Date.UTC(this.date.getFullYear(), this.date.getMonth(), this.date.getDate());
emit({day: day, user_id: this.user_id}, {count: 1});
}
您的地图将在控制台上以这样的方式运行..
> reduce = function(key, values) {
var count = 0;
values.forEach(function(v) {
count += v['count'];
});
return {count: count};
}
你的减少会像这样运行......
然后
db.pageviews.mapReduce(map, reduce, {out: pageview_results});
这是你基本的地图缩小......
现在当您查询集合pageview_results时,您将减少映射文档的数量。
> db.pageview_results.find()