2011-04-21 8 views
11

Quiero reproducir este SQL en vistas CouchDB.¿Cómo pasar dos valores de parámetros a vistas de couchdb?

SELECT name,department FROM Persons where id = ? and group_id = ? ; 

¿Cómo escribo una vista de vista y consulta en CouchDB para este SQL?

+0

@George esto es un problema común, la pregunta ahora está bien redactada, quizás podría considerar volver a abrirla – SHernandez

+0

@SHernandez La respuesta aceptada necesita ayuda; ni siquiera tiene información además de un enlace. Si estaba haciendo lo que esperaba, seguiría adelante y convertiría esa respuesta en un comentario; o eliminarlo –

+1

Escribí el capítulo Cookbook para responder preguntas como estas: http://guide.couchdb.org/editions/1/en/cookbook.html Espero que esto ayude :) –

Respuesta

16

Se podría escribir una vista como ésta:

function(doc) { 
    if (doc.person_id && doc.group_id) { 
    emit([doc.person_id, doc.group_id], {"name":doc.name,"department":doc.department}); 
    } 
} 

he cambiado su identificador a person_id por lo que no puede confundirse fácilmente con _id

utilicé una matriz como clave para la vista, por lo que puede consultar fácilmente de esta manera:

http://127.0.0.1:5984/testdb/_design/designdoc/_view/testview?key=[12,3] 

esto sería más o menos como esta consulta:

SELECT name, department FROM Persons where person_id = 12 and group_id = 3 ; 

Aquí es un artículo sobre el filtrado y la ordenación con vistas: http://barkingiguana.com/2009/01/22/filtering-and-ordering-couchdb-view-results/

hay una muy buena página en el couchdb wiki en vistas: http://wiki.apache.org/couchdb/HTTP_view_API

Este capítulo de la guía couchdb explica claves de matriz: http://guide.couchdb.org/draft/views.html

+0

@JanLehnardt Sus otros comentarios de alguna manera se perdieron. Tal vez usted u otra persona quiera mejorar esto un poco, solo presione edit – SHernandez

+0

Usted es un salvavidas. Estado buscando esto por años. +1 – 131

Cuestiones relacionadas