Hoy nos ha surgido una pregunta interesante en Stack Overflow (https://stackoverflow.com/q/20083932/98509) en relación con el uso correcto de startkey_docid. La pregunta se formuló cuando el usuario estaba introduciendo una contraseña válida. tecla de inicio y startkey_docidSin embargo, el startkey_docid parecían ser ignorados por la vista. Es importante darse cuenta de que el principal caso de uso del startkey_docid es permitirle paginar sus peticiones de vista (véase: https://www.couchbase.com/blog/pagination-couchbase) pasando un tecla de inicio y startkey_docid que coincide con el último documento de su última página, lo que le permite paginar correctamente en el caso de que numerosos documentos emitan la misma clave. Dado que el uso correcto de startkey_docid está en mi mente, pensé que este sería un buen momento para explicar el comportamiento para el futuro.
He aquí una lista rápida de las cosas importantes que hay que recordar startkey_docid:
startkey_docidse ignorará por completo sitecla de iniciose omite.startkey_docidsólo funcionará correctamente si se especifica untecla de inicioque coincide exactamente con los documentos indexados en la vista.startkey_docidse espera que coincida exactamente con uno de los docid de los resultados que coincidan exactamente con sutecla de inicio. Si no se produce ninguna coincidencia, los resultados comenzarán en la siguiente tecla.
Sugerencia: Si necesita verificar cuántas filas coincidentes exactas se van a devolver para un determinado campo tecla de iniciopruebe primero a ejecutar una solicitud de vista con el método clave en lugar de tecla de inicio.
P.D. La semántica de endkey y endkey_docid se comportan de forma idéntica a tecla de inicio y startkey_docid como se especifica aquí.
Saludos, Brett
Brett, en el ejemplo de stackoverflow se cumplen esas 3 condiciones y las 3 primeras claves son idénticas. Incluso usando tu Pro-tip se devuelven las 3 claves idénticas. ¿Podrías responder en stackoverflow cómo es posible que ese caso no esté cumpliendo uno de los 3 criterios? Parece que es así, pero tal vez hay un detalle que falta.
En su pregunta de StackOverflow, su startkey no coincide exactamente con una entrada de la vista. En este caso, startkey_docid será esencialmente ignorado como se menciona en el punto #2 y al final de #3.
Saludos, Brett
Perdí casi un día en eso. Añadir esto a la documentación sería genial para los nuevos usuarios de couchbase.
De todos modos, ¡muchas gracias!
Fred
[...] Blog de la semana: startkey_docid Comportamiento [...]