我是 MognoDB 的新手。如何检查我的机器是否支持 Map-reduce?map-reduce 的代码在另一台机器上工作,但不在我的机器上。
问问题
99 次
1 回答
1
Map-reduce 只是一个过程,而不是任何特定的服务或库。如果您正在对 mongoDB 进行基本查询,例如...
> db.collectionname.find()
比你可以轻松地将 map-reduce 代码实现到同一个 shell 中......
让我解释一下 MongoDB 食谱中的基本示例。
假设您的数据文档(在 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};
}
你的 reduce 会像这样运行......
接着
db.pageviews.mapReduce(map, reduce, {out: pageview_results});
这是你的基本地图减少......
现在,当您查询集合 pageview_results 时,您将减少映射文档的数量。
> db.pageview_results.find()
于 2013-03-06T12:54:25.893 回答