0
我有以下佈局:MongoDB的MapReduce的報表生成
{
"URL": "http://someurl.de",
"plugins": {
"HTTPServer": {
"os": [
"FreeBSD"
],
"string": [
"Apache/2.2.21 (FreeBSD) mod_ssl/2.2.21 OpenSSL/0.9.8q DAV/2 PHP/5.3.8 with Suhosin-Patch"
]
}
}
}
從中我想存儲在plugins.HTTPServer.string唯一項目的數量。所有的MapReduce例子只是指單層文件。據我瞭解的例子,你必須發射地圖功能中的數據(或選擇你想要提取的數據),然後使用reduce來進一步處理結果。我想我的問題是在映射階段 - 我需要訪問上面的字符串值:「Apache/2.2 ...」
因爲我只在MongoDB度過了最後一天,請原諒我的如果我沒有在這裏提出正確的問題,我就會無知。我是否朝着正確的方向前進?我知道我可以使用distinct = db.coll.distinct('plugins.HTTPServer.string'),但我想用MapReduce來完成這個任務。
map = function() {
server = this.plugins.HTTPServer.string
emit({server : this.server}, {count: 1});
}
reduce = "function(key, values) {
var count = 0;
values.forEach(function(v) {
count += v['count'];
});
return {count: count};
}"
謝謝,將會給它一個嘗試,並送還給你,貌似範圍的特異性是我錯過了 – EarlyPoster
東西似乎仍然不對勁 - >週三01年12月5日: 01:47 [conn93] JS錯誤:TypeError:this.plugins.HTTPServer沒有任何屬性nofile_b:1 Wed Dec 5 01:01:47 [conn93] mr失敗,移除collection :: :: 9014 map invoke failed: JS錯誤:TypeError:this.plugins.HTTPServer沒有任何屬性nofile_b:1 – EarlyPoster
即使嘗試以下語法:conks:this ['plugins.HTTPServer.string']沒有屬性 – EarlyPoster