Включение количества документов в представлении для каждого конкретного счета

У меня есть структура, такая как 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
Другие вопросы по тегам