Включение количества документов в представлении для каждого конкретного счета
У меня есть структура, такая как GROUP и USER. Каждая группа имеет несколько пользователей. Мне нужно иметь представление, которое возвращает мне список групп, который также включает количество пользователей. Как я могу это сделать?
К каждой ГРУППЕ прикреплен набор ПОЛЬЗОВАТЕЛЕЙ. Я хочу, чтобы представление GROUP возвращало количество пользователей, которое есть в каждой группе.
объект GROUP:
{
_id : 'Group-A',
description : 'test group'
}
объект USER:
{
_id : 'Bill Murray',
groupId : 'Group-A',
email : 'bmurray@gmal.com'
}
что мне нужно, чтобы посмотреть, как
{
groupName : 'Group-A',
description : 'test group',
userCount : 45
}
1 ответ
Используйте сокращение _count:
Карта:
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
Если вы хотите подсчитать по группам, используйте уменьшение =true&group_level=1
key: "Group-A" value: 2
key: "Group-B" value: 1