0

私はMognoDBを初めて使用します。自分のマシンがMap-reduceをサポートしているかどうかを確認するにはどうすればよいですか?map-reduceのコードは別のマシンで機能していますが、私のマシンでは機能していません。

4

1 に答える 1

1

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)"
}

これは、任意のWebサイトのページビュードキュメントです。

このソリューションでは、ページビューを日ごとにグループ化し、ユーザーの合計訪問数とその日のユニーク訪問数をカウントする必要があります。

> 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 に答える