arrays - búsqueda de couchdb o filtrado en la matriz de teclas
view arraylist (1)
Primero:
key = ["US"] no funcionará en una Clave de Array ["US", "NY"], porque está buscando una clave que sea EXACTA ["US"]. En cambio, debes usar
startkey=["US"]&endkey=["US",{}]
entonces esas llaves están en el conjunto de resultados:
["DE","Bavaria","Munich"] <---- NO ! "DE" is out of Range of startkey
["US","FL","Miami"] <---- YES, starts with "US"
["US","NY","New York"] <---- YES, starts with "US"
["VE","XX","Vencuela City"] <---- NO ! "VE" is out of Range of endkey
También trabajando:
startkey=["US","FL"]&endkey=["US","FL",{}]
resultado:
["DE","Bavaria","Munich"] <---- NO ! "DE" is out of Range of startkey
["US","FL","Miami"] <---- YES, starts with "US","FL"
["US","NY","New York"] <---- NO, "US","NY" is out of Range of endkey
["VE","XX","Vencuela City"] <---- NO ! "VE" is out of Range of endkey
Segundo: no puede tener espacios en blanco en el lado izquierdo ... por lo que debe escribir más emite: (no tiene que emitir el segundo y tercer elemento de matriz, si no necesita consultarlo)
ver "byStateCityCountry":
emit([doc.address.state, doc.address.city,address.country], doc);
ver "porCityStateCountry":
emit([address.city,doc.address.state, doc.address.country], doc);
de simplemente poner una bandera en primer lugar para determinar el tipo de consulta, para que pueda hacer todo en una sola vista:
emit([1,address.country,doc.address.state, doc.address.city], doc);
emit([2,doc.address.state, doc.address.city,address.country], doc);
emit([3,address.city,doc.address.state, doc.address.country], doc);
Uso:
?startkey=[1,"US"]&endkey=[1,"US",{}]
?startkey=[2,"FL"]&endkey=[2,"FL",{}]
?startkey=[3,"Miami"]&endkey=[3,"Miami",{}]
Tengo esto en mi función de vista:
emit([doc.address.country,doc.address.state, doc.address.city], doc);
Cuando consulto la búsqueda, necesito tener los 3 elementos de la matriz completados, por ejemplo:
?key=["US","NY","New York"]
eso producirá mis registros, pero digamos, por ejemplo, solo quiero devolver todo en los EE. UU., por ejemplo:
?key=["US"]
o en los Estados Unidos y el Estado ...
?key=["US","NY"]
O ... digamos que tal vez quiero todos los registros de Nueva York ... (Sé que a continuación no funciona)
?key=["","NY"]
Realmente no entiendo cómo buscar si quieres dejar vacío uno de los elementos de la matriz.