2012-11-11 4 views
1

J'ai quelques difficultés à utiliser l'emballage nano pour CouchDB dans les NodeJS:CouchDB: trouver et de retour des champs spécifiques

https://github.com/dscape/nano

Ma question est, comment puis-je trouver et retourner tous les utilisateurs dont le foobar de matchs email @ baz.com? '. Que se passe-t-il si je souhaite seulement renvoyer le champ de nom?

Je suis confus par le concenpt de vues et designnames/noms de vue et si quelqu'un pouvait me montrer un exemple d'appel, ce serait merveilleux.

Merci,

var nano = require('nano')('http://localhost:5984'); 
nano.db.create('users'); 
var users = nano.db.use('users'); 

user.views()//what parameters go in here? 

/*example user object 
user = { 
    'id' : '123', 
    'email' : '[email protected]' 
    'name':'John Doe' 
} 
*/ 

Répondre

2

On dirait que vous avez besoin pour créer la vue en CouchDB avant d'y accéder avec nano. Les vues sont attachées aux documents de conception sous forme de carte (et éventuellement) de réduction des fonctions.

Voir ce pour plus d'informations: http://wiki.apache.org/couchdb/HTTP_view_API et ceci: http://guide.couchdb.org/editions/1/en/views.html

Votre document de conception pour votre base de données des utilisateurs pourrait ressembler à quelque chose comme ce qui suit:

{ 
    "_id":"_design/usersddoc", 
    "_rev":"12345", 
    "language": "javascript", 
    "views": 
    { 
    "byEmail": { 
     "map": "function(doc) { if (doc.email) emit(null, doc.name) }" 
    } 
    } 
} 

Il est important de comprendre les bases du fonctionnement CouchDB avant d'utiliser une bibliothèque, sinon vous serez toutes sortes de confus. CouchDB a une interface RESTful JSON assez simple, je recommande de lire le Guide Définitif et de naviguer sur le Wiki pour avoir une bonne idée de son fonctionnement.

+0

ouais, je suis retourné lire plus attentivement. J'ai dû visiter la console d'administration et créer manuellement un document de conception, ce qui était très différent des requêtes classiques de type MongoDB. – ejang

+0

Je suis d'accord CouchDB est très différent de MongoDB, et Futon (l'interface d'administration de CouchDB à localhost: 5984/_utils) ne supporte pas vraiment la modification de documents de conception. J'utilise généralement CouchApp à cet effet, car il est un peu plus facile de maintenir de cette façon: http://couchapp.org/page/index –

+0

Kanso est une alternative à CouchApp (http://kan.so), et il y a en fait quelques d'autres si vous creusez sur le web. – Costa

Questions connexes