0

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

4

1 回答 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 回答