2012-07-24 12 views
9

Tengo una visión couchdb creó utilizando un valor clave de la matriz, en el formato:CouchDB - Consulta de valor clave de la matriz para el primer elemento clave única

[articleId, -timestamp] 

que desea ver los resultados para todas las entradas con el mismo ID de artículo . Todas las marcas de tiempo son aceptables.

Ahora estoy usando una consulta como esta:

?startkey=["A697CA3027682D5JSSC",-9999999999999]&endkey=["A697CA3027682D5JSSC",0] 

pero me gustaría algo un poco más simple.

¿Hay alguna manera fácil de descartar por completo el segundo elemento clave? ¿Cuál sería la sintaxis más simple para esto?

+6

Creo que todo lo que tiene que hacer es '? Startkey = [ "A697CA3027682D5JSSC"] y endkey = [ "A697CA3027682D5JSSC", {}]' –

Respuesta

13

En primer lugar, como un comentario señaló, en efecto, hay un valor especial {} que se ordena después de cualquier valor, por lo que su consulta se convierte en:

startkey=["target ID"]&endkey=["target ID",{}] 

Esto es equivalente a un partido de comodín.

Como nota al margen, no hay necesidad de invertir el orden en la función de mapa al emitir una marca de tiempo negativa, puede invertir el orden como una opción para la invocación de vista (se intercambiarán su clave de inicio y finalización).

startkey=["target ID",{}]&endkey=["target ID"]&descending=true 
+0

excelente. Estaba buscando todo esto, pero creo que mi terminología no era exacta. Muchas gracias :) – Gopherkhan

+0

¿Dónde encontraste esto? funciona muy bien pero estuve revisando la documentación de la última semana y este es el primer lugar que he visto mencionar al {}. – MBillau

+1

@MBillau ha pasado demasiado tiempo, así que ya no recuerdo. Creo que tiene algo que ver con el orden alfabético de '{}'. –

Cuestiones relacionadas