estoy usando lo que parece ser un truco común para la creación de una vista conjunta:¿Cuál es el valor máximo para una clave compuesta de CouchDB?
// a Customer has many Orders; show them together in one view:
function(doc) {
if (doc.Type == "customer") {
emit([doc._id, 0], doc);
} else if (doc.Type == "order") {
emit([doc.customer_id, 1], doc);
}
}
Sé que puedo utilizar la siguiente consulta para obtener una sola customer
y todos los relacionados Order
s:
?startkey=["some_customer_id"]&endkey=["some_customer_id", 2]
Pero ahora he vinculado mi consulta muy con mi código de vista. ¿Hay algún valor que pueda poner donde puse mi "2
" para decir más claramente, "Quiero todo vinculado a este cliente"? Creo que he visto
?startkey=["some_customer_id"]&endkey=["some_customer_id", {}]
Pero no estoy seguro de que es {}
cierta para ordenar después de todo lo demás.
Crédito a cmlenz para el método de unión.
más aclaraciones de la CouchDB wiki page on collation:
La consulta
startkey=["foo"]&endkey=["foo",{}]
coincidirá con la mayoría de las claves de matriz con "foo" en el primer elemento, como["foo","bar"]
y["foo",["bar","baz"]]
. Sin embargo, no coincidirá con["foo",{"an":"object"}]
Así es {}
finales en el orden de clasificación, pero definitivamente no es la última .
Nota "inclusive_end" protege contra el caso ridículo en el que realmente tiene una clave del formulario "some_customer_id \ u0000", al no incluir documentos que coincidan con la "endkey" en el resultado. – user359996