Учитывая, что у меня есть некоторое количество документов в моей базе данных CouchDB, я хотел бы иметь возможность получить список тегов, упорядоченный по количеству документов, связанных с каждым тегом. Документы имеют следующую структуру:
{
"name": "Document Name 1",
"description": "Document description",
"tags": ["tag1", "tag2", "tag3"]
}
Я, очевидно, могу создать представление, которое будет перечислять каждый тег и количество документов, связанных с каждым тегом, в следующем виде:
function(doc) {
if (doc.type == "Document") {
for (tag in doc.tags) {
emit(tag, 1)
}
}
};
function(keys, values, rereduce) {
return sum(values);
}
Проблема с этим подходом состоит в том, что имена тегов будут ключевыми в этом наборе результатов, и поэтому я не смогу сортировать по количеству документов, а также ограничить результат верхними тегами X. Я чувствую, что упускаю что-то очень очевидное, но все еще не вижу решения.