【发布时间】:2016-06-13 11:25:10
【问题描述】:
我有如下文件,我想使用 map 函数来获取给定 UserId 的最新状态
doc1: _id=id1, UserId='ABC', status='OPEN',...
doc2: _id=id2, UserId='BCD', status='OPEN', .....
doc3: _id=id3, UserId='ABC', status='CLOSED'....
对于给定的用户 ID,如果它涉及两个状态:打开和关闭,则返回带有关闭状态文档的文档
对于给定的用户 ID,如果它仅与打开状态相关,则返回带有打开状态文档的文档
doc1: _id=id1, UserId='ABC', status='CLOSED',...
doc2: _id=id2, UserId='BCD', status='OPEN', .....
我正在尝试如下图,如果 Userid 相同,则返回关闭状态文档,但不工作,
function(doc) {
var docArr = [];
if (doc.event) {
if(doc.UserId){
docArr.push(doc)
}
}
for (var i=0; i<docArr.length; i++) {
for(var j=0; j<i; j++) {
if (docArr[i].UserId == docArr[j].UserId) {
if (docArr[i].status == "CLOSED")
{
docArr.splice(j,1)
}
else(docArr[j].status == "CLOSED")
{
docArr.splice(i,1)
}
}
}
}
for (var i=0; i<docArr.length; i++) {
emit(docArr[i].UserId,docArr[i]);
}
}
【问题讨论】:
标签: javascript mapreduce couchdb