我有一个像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
}
答案 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