8
votes

Recherche par clé à Apache Couchdb

est-il possible de rechercher par la valeur clé dans Apache Couchdb? Compte tenu des données d'échantillon ci-dessous (espacées pour la lisibilité):

{
    "_id":"a754a63dcc7f319b02f7ce6de522ca26",
    "_rev":"1-5bd88e53fe0869b8ce274b49a2c1ddf5",
    "name":"john smith",
    "email":"jsmith@example.com",
    "username":"jsmith"
}


0 commentaires

3 Réponses :



6
votes

Oui, c'est certainement possible. Vous créerez quelques points de vue, qui sont des listes de tri («index») de vos données, une par clé.

Le lien de Tobias est utile. Cependant, la documentation standard CouchDB couvrira également:

  • Recherche de vos données avec des vues dans le livre (je préfère cette ressource)
  • Introduction à CouchDB Vues dans le wiki

    Par exemple, dans votre document de conception, vous pouvez souhaiter une vue users_by_email , avec des touches basées sur le champ ; Ensuite, un users_by_name Affichage figée sur le nom d'utilisateur Expérience avec les vues temporaires du futon jusqu'à ce que votre fonction fonctionne exactement, puis stockez-la dans votre document de conception. en permanence.

    bonne chance!

    P.s. Il existe un moyen de combiner toutes ces exigences en une vue. Brièvement, vous pouvez avoir une clé sur ["e-mail", "jsmith@example.com"] ou ["nom": "John Smith"] N'oubliez pas que Couchdb est détendu : La méthode plus simple ci-dessus fonctionnera bien. Lorsque vous devenez à l'aise avec des vues, vous pouvez explorer ce style «rassemblé».


1 commentaires

Les touches FYI doivent être courtes car les clés sont enregistrées dans tous les objets. J'essaie toujours de rester vraiment petit comme "email" serait "m" ou "e" - "nom d'utilisateur" serait "u" ... juste un fyi - personne ne doit le faire, mais si vous stockez beaucoup de données Cela aide à sauver un peu d'espace.



2
votes

Vous ne pouvez pas rechercher par un keyvalue. Vous ne pouvez rechercher que sur les touches.

Si vous souhaitez rechercher des courriels, émettez [email, quelles que soient les données] dans certaines visutions et ajoutez ? touche = 'Recherche email' pour afficher l'URL.

La recherche uniquement par les touches donne d'énormes avantages de performance et donc cette fonctionnalité [la recherche de la valeur clé] ne viendra jamais à Couchdb.


0 commentaires