2010-05-15 10 views
2

Je suis en train de jouer avec CouchDB pour tester s'il est "possible" [1] de stocker des données scientifiques (données brutes simulées et expérimentales + métadonnées). Un grand pro est l'approche sans schéma de CouchDB: nous devons être très flexibles avec les métadonnées, car l'ensemble des paramètres change très souvent. Jusqu'à présent, j'ai du code pour alimenter les documents CouchDB en données brutes, en tracés (en pièces jointes) et en métadonnées hiérarchiques (en JSON), et j'ai écrit un prototype de Javascript pour le filtrage et l'affichage. Mais le filtrage est effectué du côté client (navigateur a.k.a.): La fonction map renvoie simplement tout.CouchDB: Comment changer la fonction de vue via javascript?

Comment pourrais-je changer le (ou pousser une seconde) fonction de carte d'un _design-document spécifique avec simple navigateur-JS?

Je ne pense pas qu'une vue temporaire produirait un gain de performance ...

Merci pour votre temps et réponses.

[1]: Bien sûr, il est possible, mais est-il aussi utile? réalisable? raisonnable?

[ajouté]

Ah, les jquery.couch.js (version 0.9.0) fournit une fonction saveDoc(), qui pourrait mettre à jour le document _design avec la nouvelle fonction de la carte.

Mais j'ai également essayé la fonction de requête, qui utilise une vue temporaire. Ok, "ne pas utiliser cela dans le vrai produit, seulement pendant le développement" ... Mais la recherche scientifique est développement stable, non?

vues temporaires sont mises en cache se, comme je l'ai remarqué, et il fonctionne bien pour 1000 ~ documents par DB. Un deuxième plus: tous les utilisateurs (pensez à 1 à 3, donc une grosse gestion d'utilisateur est quitte d'une overkill) peuvent travailler avec leur propre vue temporaire.

Répondre

1

Jamais jamais utiliser des vues temporaires. Ils ne sont vraiment là qu'à des fins de développement et de débogage. Pour plus d'informations, voir http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views (plus précisément le gras "NOTE").

Et oui, parce que les documents de conception sont vraiment seulement des documents avec des pouvoirs spéciaux, vous pouvez vous lancer GET/POST/PUT/DELETE méthodes sur eux. Cependant, vous aurez généralement besoin de privilèges d'administrateur pour le faire. Donc, si vous autorisez un logiciel côté client à le faire, vous rendez l'ensemble de votre base de données publique pour un accès en lecture/écriture - cela peut convenir à votre application, mais il est important de s'en souvenir.

Ex., Si vous restreignez l'accès à votre base de données, mais mettez le nom d'utilisateur et mot de passe javascript côté client, alors tout le monde peut voir que le nom d'utilisateur et mot de passe.

Cheers.

Questions connexes