appel avec start_key=["Linux", "Edouard", "2010年01月01日"]&end_key=["Linux", "Edouard", "2010年01月12日"]
Il faut se dire qu'on va créer un index, cad un ensemble de couple (clé,valeur) et ça sera stocké trié par clé. Donc quand on requête sur la vue (cad sur l'index) on requête par rapport à la clé.
C'est la seule manière de faire qui soit efficiente. Une vue temporaire est souvent inadmissible (car ça va tout reparcourir les documents, alors que dans une vue normal, à chaque appel on parcourt que ce qui a changé, donc c'est potentiellement très très très rapide).
Donc, dans la plupart des cas, faut penser un peu en mode je dois faire une requête SQL qui utilise complètement UN index.
[^] # Re: Question bête
Posté par Maxime G . En réponse au journal A quoi peut servir couchdb ?. Évalué à 4.
Une vue (ie un index) avec comme clé : [ categorie , auteur, date ]
map = function(doc) {
emit( [doc.Category, doc.Author, doc.Date] , null);
}
et pas de reduce
appel avec start_key=["Linux", "Edouard", "2010年01月01日"]&end_key=["Linux", "Edouard", "2010年01月12日"]
Il faut se dire qu'on va créer un index, cad un ensemble de couple (clé,valeur) et ça sera stocké trié par clé. Donc quand on requête sur la vue (cad sur l'index) on requête par rapport à la clé.
C'est la seule manière de faire qui soit efficiente. Une vue temporaire est souvent inadmissible (car ça va tout reparcourir les documents, alors que dans une vue normal, à chaque appel on parcourt que ce qui a changé, donc c'est potentiellement très très très rapide).
Donc, dans la plupart des cas, faut penser un peu en mode je dois faire une requête SQL qui utilise complètement UN index.
(Faudrait que je finisse cette page : http://www.couchdb-fr.net/decouvrir/exemple-blog )
--------------------
Pour les autres qui se pose des questions de l'intérêt, je vais donner le mien (entres autres) :
Par exemple, comment stocker en base une facture ?
MySQL : 1 table facture + 1 table facture_lignes + clés étrangères
CouchDB :
{
...
"client": "Bill Gates",
"lignes": [
{ "Produit": "Support Linux (1/2j)", "Quantité": 10, "Prix": 500 },
{ "Produit": "Porte clé Manchot", "Quantité": 1, "Prix": 2.99 }
],
"Total": 5002.99
}
(Tout ce qui est mettable en JSON est enregistrable dans CouchDB...)