如何使用map / reduce将文档与最新状态的某些不同元素合并

时间:2016-06-16 02:20:31

标签: javascript mapreduce couchdb couchbase couchdb-futon

我非常坚持这个问题,希望有些人可以帮我使用map / reduce函数,我有一些文件,比如下面的数据元素,比如doc.event1中的doc.userid,但是doc.userid不存在于doc中.event2,如下:

doc.event1: userid='6908503',  probNumber='USP06HVU8NF', userTypeCode='M',status='OPEN',...
doc.event1: userid='6908503',  probNumber='USP02BUEIFR', userTypeCode='M',status='OPEN',...
doc.event1: userid='ABCCCCCC',  probNumber='GBP02M8RFKI', userTypeCode='M',status='OPEN',...
doc.event2: probNumber='USP06HVU8NF', status='CLOSE'.....

...

我需要使用带有doc.probNumber组合的doc.userid作为地图中的关键字来获取给定相同probNumber的最新状态,这是我在地图中使用的内容及其结果

function(doc) {
    if(doc.event){
       var idv = null;
             for (var idu in doc.users){
               if (doc.users[idu].userTypeCode == "M"){

                   idv = doc.users[idu].userId;
        }
            }
      emit([idv,doc.problemNumber],[doc.status]);
  }
}

结果:

       key                   values
[null, "USP06HVU8NF"],     ["CLOSE"]
["6908503", "USP02BUEIFR"],["OPEN"]
["6908503", "USP06HVU8NF"],["OPEN"]
["ABCCCCCC", "GBP02M8RFKI"],["OPEN"]

如何使用reduce将[null,“USP06HVU8NF”] [“6908503”,“USP06HVU8NF”]的结果与最新状态CLOSE合并为[“6908503”,“USP06HVU8NF”],[“CLOSE”]按预期方式?

["6908503", "USP06HVU8NF"],["CLOSE"]
["6908503", "USP02BUEIFR"],["OPEN"]
["ABCCCCCC", "GBP02M8RFKI"],["OPEN"]

0 个答案:

没有答案