代码之家  ›  专栏  ›  技术社区  ›  Ben Collins

couchdb-基本分组问题

  •  0
  • Ben Collins  · 技术社区  · 5 年前

    我有一个用户文档,它有一个组字段。此字段是组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。感谢您的帮助。

    1 回复  |  直到 14 年前
        1
  •  1
  •   dnolen    15 年前

    在检查了couchdb irc之后,这个问题的答案是根本不需要reduce。只需提供key=groupid,如下所示:

    http://localhost:5984/somedb/_design/bygroup/_view/all?key=2