2010-09-07 17 views
7

¿Es posible usar comodines en vistas en CouchDB? Por ejemplo, digamos que tengo una base de datos que tiene equipos, edades de jugadores, promedios de jugadores y sexo de jugadores. Sin embargo, es posible que las edades de los jugadores no se conozcan, ya que podrían ser de la República Dominicana o lo que sea. Entonces quiero usar una vista con una función de mapa que pueda aceptar no tener la edad del jugador. Si quiero obtener el jugador con el promedio más alto en un equipo, independientemente de su edad o con una edad específica, ¿cómo lo hago si quiero usar las teclas compuestas? Por ejemplo, digamos que mi mapa de funciones emiten es algo así como:Comodines en vistas con CouchDB?

emit([doc.team, doc.gender, doc.age], doc.average); 

¿Qué debo hacer si quiero pasar en una clave para limitar la búsqueda, y aún así factor en los jugadores que no tienen una edad entrado, así que en vez de:

http://127.0.0.1:5984/savings/_design/players/_view/average?key=["Yankees","male",8] 

hacer algo que incorpora un comodín como este para obtener los promedios independientemente de su edad:

http://127.0.0.1:5984/savings/_design/players/_view/average?key=["Yankees","male",*] 

¿es posible escribir una vista en CouchDB para hacer algo como t ¿su? ¿O debo escribir varias vistas y procesarlas por separado?

Gracias,
Ben

Respuesta

7

Comodín no es posible, pero puede especificar startkey y endkey:

http://127.0.0.1:5984/savings/_design/players/_view/average?startkey=["Yankees","male",0]&endkey=["Yankees","male",999] 
+8

endkey = ["Yankees", "macho ", {}] debería funcionar mejor ya que {} se ordena después de cualquier número. – ordnungswidrig

+0

Como señalaron dedalo y ordnungswidrig, puede usar llaves vacías como un comodín con la tecla de inicio y la tecla de finalización, por lo que su respuesta es un tanto confusa cuando dice "el comodín no es posible". – Bdoserror

13

Puede especificar startkey y endkey y utilizar el "comodín" {}, una de JavaScript vacío objeto:

http://127.0.0.1:5984/savings/_design/players/_view/average?startkey=["Yankees","male",0]&endkey=["Yankees","male",{}]