按国家数量对各大洲进行排序

时间:2015-06-07 16:01:03

标签: javascript json couchdb

我有一份国家/地区列表:

"country": [
       {
           "countryCode": "AD",
           "countryName": "Andorra",
           "currencyCode": "EUR",
           "population": "84000",
           "capital": "Andorra la Vella",
           "continentName": "Europe",
           "continent": "EU",
           "areaInSqKm": "468.0",
           "languages": [
               "ca"
           ]
       },
       {
           "countryCode": "AE",
           "countryName": "United Arab Emirates",
           "currencyCode": "AED",
           "population": "4975593",
           "capital": "Abu Dhabi",
           "continentName": "Asia",
           "continent": "AS",
           "areaInSqKm": "82880.0",
           "languages": [
               "ar-AE",
               "fa",
               "en",
               "hi",
               "ur"
           ]
       },
etc.

现在我必须在JSON中编写一个Map / Reduce函数来获得这样的输出:

关键:Afrika价值:xxx 关键:亚洲价值:xxx 等

其中'价值'代表每个大洲的国家数量。

我已经尝试过这个Map功能:

function(doc) {
   var a
   {
      for (a in doc.country){
         emit(doc.country[a].continentName, 1)
      };
   }
}

2 个答案:

答案 0 :(得分:0)

地图功能:

function(doc) {
    var country = doc.country;
    var i;
        for (i in country) {
            emit (country[i].continentName, 1)
        };
}

然后你必须使用 Reduce Function

来减少它
function(keys, values) {
   return sum(values);}

答案 1 :(得分:0)

我建议发出值null而不是1,并使用内置的reduce函数_count