私はMognoDBを初めて使用します。自分のマシンがMap-reduceをサポートしているかどうかを確認するにはどうすればよいですか?map-reduceのコードは別のマシンで機能していますが、私のマシンでは機能していません。
質問する
99 次
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 に答える