CouchDB-基本分组问题

CouchDB-基本分组问题,couchdb,mapreduce,Couchdb,Mapreduce,我有一个用户文档,其中有一个组字段。此字段是组ID的数组。我想写一个返回(groupid作为key)->(用户文档数组作为val)的视图。这个映射操作似乎是一个良好的开端 function(doc) { var type = doc.type; var groups = doc.groups; if(type == "user" && groups.length > 0) { for(var i = 0; i < groups.length;

我有一个用户文档,其中有一个组字段。此字段是组ID的数组。我想写一个返回(groupid作为key)->(用户文档数组作为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);
    }
  }
}
功能(doc)
{
变量类型=单据类型;
变量组=单据组;
if(type==“user”&&groups.length>0)
{
对于(变量i=0;i
但很明显,我试图降低成本的做法有很大的问题:

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;
}
函数(键、值、返回值)
{
var集=[];
var=[];
对于(变量i=0;i

我正在运行CouchDB 0.10dev。感谢您的帮助。

在检查CouchDB IRC后,答案是您根本不需要reduce。只需提供一个key=groupId,如下所示: