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 タグに制限したりすることができないことです。非常に明白な何かが欠けているように感じますが、まだ解決策がわかりません。