0
我是MognoDB的新手。 如何检查我的机器是否支持Map-Reduce? map-reduce的代码在另一台机器上工作,但不在我的机器上。检查Mongodb MapReduce支持
我是MognoDB的新手。 如何检查我的机器是否支持Map-Reduce? map-reduce的代码在另一台机器上工作,但不在我的机器上。检查Mongodb MapReduce支持
Map-reduce只是一个过程,并不是任何特定的服务或库。 如果你正在做的MongoDB等基本的查询......
> db.collectionname.find()
比你可以轻松实现的map-reduce代码插入到相同的外壳...
让我从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};
}
您减少将运行这样的...
然后
db.pageviews.mapReduce(map, reduce, {out: pageview_results});
这是你的基本地图减少...
现在,当您查询集合pageview_results时,您将减少映射文档的计数。
> db.pageview_results.find()
所有的MongoDB服务器都支持map-reduce。它以什么方式不起作用? – JohnnyHK 2013-02-23 14:10:42
谢谢!这意味着它已经支持MapReduce。我不应该明确地启用它。我的代码在Yii中使用扩展名,我也无法粘贴。但它似乎没有填充使用“out” – 2013-02-23 14:23:25
其在mongo shell上运行的刚刚的javascript函数。 – 2013-03-06 12:54:55