在视图中包括每个特定计数的文档计数

时间:2014-01-27 20:04:53

标签: mapreduce couchdb

我有一个像GROUP和USER这样的结构。每个组都有许多用户成员。我需要有一个视图,它返回一个包含用户数的组列表。我该怎么办?

每个GROUP都附有一组USERS。我希望GROUP视图返回每个组的用户数。

GROUP 对象:

 {
    _id : 'Group-A',
    description : 'test group'
 }

USER 对象:

{
   _id : 'Bill Murray',
   groupId : 'Group-A',
   email : 'bmurray@gmal.com'
}

我需要 VIEW 看起来像

{
   groupName : 'Group-A',
   description : 'test group',
   userCount : 45
}

1 个答案:

答案 0 :(得分:1)

使用_count reduce:

地图:

function(doc){
  if ( doc.groupId ){
     emit(doc.groupId, null);
  }
}

减少

_count

使用reduce = false查询视图会给你:

key: "Group-A" value: null
key: "Group-A" value: null
key: "Group-B" value: null

使用reduce = true进行查询,您将获得:

key: null value: 3

如果您想按组计算,请使用reduce = true& group_level = 1

key: "Group-A" value: 2
key: "Group-B" value: 1