CouchDB de tri et de filtrage dans la même vue

Je suis en train d'utiliser CouchDB pour une nouvelle application, et j'ai besoin de créer une vue qui trie par de multiples domaines et des filtres en fonction de plusieurs champs. Voici un exemple de document, j'ai laissé de côté l'_id et _rev pour me sauver un peu de temps.

{
    "title": "My Document",
    "date": 1279816057,
    "ranking": 5,
    "category": "fun",
    "tags": [
        "couchdb",
        "technology"
    ],
}

De la documentation, j'ai appris que je peux facilement créer une vue qui trie par un domaine tel que le classement.

function(doc) {
    emit(doc.ranking, doc);
}

J'ai également appris que je peux facilement filtrer par domaines tels que la catégorie

function(doc) {
    emit(doc.category, doc);
}

http://127.0.0.1:5984/database/_design/filter/_view/filter?key=%22fun%22

Mon problème est que j'ai besoin de faire un tas de toutes ces choses en même temps. Je veux du filtre en fonction de la catégorie et aussi la marque. Je devrais être en mesure de filtrer uniquement les documents avec la catégorie de "fun" et la balise de "documents". Je veux trier les résultats filtrés par le classement dans l'ordre décroissant, puis par date dans l'ordre croissant, puis par titre dans l'ordre alphabétique.

Comment puis-je créer une vue qui fait tout de tri et de filtrage?

InformationsquelleAutor Apreche | 2010-07-22