arrays view arraylist couchdb key

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.