CouchDB сортировка и фильтрация в одном представлении
Я пытаюсь использовать CouchDB для нового приложения, и мне нужно создать представление, которое сортирует по нескольким полям, а также фильтрует по нескольким полям. Вот пример документа, я пропустил _id и _rev, чтобы сэкономить при печати.
{
"title": "My Document",
"date": 1279816057,
"ranking": 5,
"category": "fun",
"tags": [
"couchdb",
"technology"
],
}
Из документации я узнал, что могу легко создать представление, которое сортируется по полям, таким как ранжирование.
function(doc) {
emit(doc.ranking, doc);
}
Я также узнал, что я могу легко фильтровать по таким полям, как категория
function(doc) {
emit(doc.category, doc);
}
http://127.0.0.1:5984/database/_design/filter/_view/filter?key=%22fun%22
Моя проблема в том, что мне нужно делать кучу этих вещей одновременно. Я хочу фильтровать по категории, а также по тегу. Я должен быть в состоянии отфильтровать только документы с категорией «веселья» и тегом «couchdb». Я хочу отсортировать отфильтрованные результаты по рейтингу в порядке убывания, затем по дате в порядке возрастания, а затем по заголовку в алфавитном порядке.
Как я могу создать одно представление, которое объединяет всю эту сортировку и фильтрацию?