检查Mongodb MapReduce支持

时间:2013-02-23 14:05:09

标签: mongodb mapreduce

我是MongoDB的新手。 我如何检查我的机器是否支持Mapreduce? map-reduce的代码在另一台机器上工作,但不在我的机器上。

1 个答案:

答案 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()