我有一个包含组字段的用户文档。该字段是组ID的数组。我想写一个返回的视图(groupid作为键) - > (用户文档数组为val)。这种映射操作似乎是一个良好的开端。
function(doc)
{
var type = doc.type;
var groups = doc.groups;
if(type == "user" && groups.length > 0)
{
for(var i = 0; i < groups.length; i++)
{
emit(groups[i], doc);
}
}
}
但是我的减少尝试显然有些问题:
function(key, values, rereduce)
{
var set = [];
var seen = [];
for(var i = 0; i < values.length; i++)
{
var _id = values[i]._id;
if(seen.indexOf(_id) == -1)
{
seen.push(_id);
set.push(values[i]);
}
}
return set;
}
我正在运行CouchDB 0.10dev。任何帮助表示赞赏。
答案 0 :(得分:1)
在检查CouchDB IRC之后,答案就是你根本不需要减少。只需提供一个key = groupId,如下所示:
http://localhost:5984/somedb/_design/bygroup/_view/all?key=2