0
我有一個問題,我在MongoDB的數據,看起來像這樣:MapReduce的麻煩計數
{"miejscowosci_str":"OneCity", "wojewodztwo":"FirstRegionName", "ZIP-Code" : "...", ...}
{"miejscowosci_str":"TwoCity", "wojewodztwo":"FirstRegionName", "ZIP-Code" : "...", ...}
{"miejscowosci_str":"ThreeCity", "wojewodztwo":"SecondRegionName", "ZIP-Code" : "...", ...}
{"miejscowosci_str":"FourCity", "wojewodztwo":"SecondRegionName", "ZIP-Code" : "...", ...}
等 我想是列出所有地區(wojewodztwo)並計算平均每個區域的郵政編碼號,我知道怎麼算的所有郵政編碼在區域:
var map = function() {
emit(this.wojewodztwo,1);
};
var reduce = function(key, val) {
var count = 0;
for(i in val) {
count += val[i];
}
return count;
};
db.kodypocztowe.mapReduce(
map,
reduce,
{ out : "result" }
);
但我不知道怎麼算的城市(miejscowosci_str)號碼,以便我可以劃分ZIP碼數地區通過同一地區的城市數量。 一個城市可以有多個郵政編碼。
你有什麼想法嗎?
謝謝你確實有效,但我有一些麻煩。我的收藏包含大約21k項目,並且導致我在zipCodes中獲得的大多數區域幾乎沒有空值,在城市也很少有空值,兩個區域有部分zipCodes和城市,但其餘部分僅包含很少的空值。看起來有一些執行時間限制,你知道如何解決它嗎?我想在mapreduce中這樣做,因爲這是我的研究任務。對於基本問題抱歉,我是mongodb的新手。謝謝 – user1337192
嗯,我試着在一個包含29,000個條目的數據集上運行代碼,甚至在map方法中還有5秒的睡眠時間,它仍然沒有超時。我想它更有可能是某處出現異常,日誌中是否有消息?就空值而言,您可以將[查詢](http://docs.mongodb.org/manual/reference/method/db.collection.mapReduce/#db.collection.mapReduce)添加到** out **參數過濾出不存在$ $存在$的文件並且$ ne null **。運營商是[這裏](http://docs.mongodb.org/manual/reference/operator/) – jimoleary
我不得不改變一些代碼,這是我的回答:http://pastebin.com/pmPDjHWU,與城市和拉鍊沒有通過[&]我沒有空,現在沒事 – user1337192