Con la reciente versión para desarrolladores de marzo de 2017 de Couchbase se han corregido muchos errores, pero también se han mejorado características de tecnologías básicas como N1QL. Por ejemplo, ahora se pueden crear índices en varios metadatos como el cas del documento y los valores de expiración. Otro ejemplo incluye una sintaxis simplificada al crear índices de array.

Vamos a echar un vistazo a algunas de estas mejoras y a cómo podrías utilizarlas en tu propia aplicación.

Indexación simplificada de matrices en Couchbase 5.0

Con Couchbase Server 4.5 llegó la indexación de arrays. Tomemos como ejemplo el siguiente documento de muestra:

Nueva sintaxis de índice de matriz

Antes de Couchbase 5.0, para indexar los elementos de la matriz que se encuentran en redes sociales tenías que escribir un índice parecido al siguiente:

En el ejemplo anterior, el PARA era necesario para la indexación de arrays. En Couchbase Server 5.0 hay una sintaxis mucho más simplificada. El mismo índice se puede crear mediante lo siguiente:

Para asegurarte de que tu índice funciona, puedes ejecutar la siguiente consulta N1QL:

Al examinar los resultados de la EXPLICAR debería ver que está utilizando el ismo creado anteriormente.

Ahora bien, que exista la sintaxis simplificada no significa que no se pueda utilizar la sintaxis anterior al indexar arrays. El siguiente sería un ejemplo perfecto de por qué la sintaxis anterior seguiría siendo válida:

Obsérvese que a CUANDO al crear el ism_website índice superior.

Más información sobre la indexación de matrices aquíjunto con otra documentación útil sobre la creación de índices en Couchbase.

Requisito relajado de coincidencia de variables para índices de matrices

En las versiones 4.x, la indexación de matrices requería el uso de exactamente los mismos nombres de variables en el archivo SELECCIONE que se utilizaron en la CREAR ÍNDICE declaración. Más información aquí.

Por ejemplo, en referencia a las consultas anteriores, observe que la variable medios de comunicación que se utiliza para iterar a través de la matriz redes sociales es muy importante. La indexación de matrices en 4.x exige el nombre exacto de la variable medios de comunicación que se utilizará en el SELECCIONE consulta.

La versión 5.0 de Couchbase relaja este requisito, y la siguiente consulta funcionaría perfectamente:

Tenga en cuenta que, el índice ismo utiliza el nombre de la variable medios de comunicaciónpero la consulta anterior utiliza m. Aun así, la consulta anterior puede utilizar el índice ismo con éxito.

Requisito relajado de clave de índice de matriz completa para índices de matriz

Recuerde también que, en las versiones 4.x, la indexación de matrices cubierta requiere el atributo de matriz completa como clave de índice obligatoria en la definición del índice de matriz. Por ejemplo, tome la siguiente consulta de nuevo:

El índice de matriz cubierta correspondiente a la consulta anterior sería:

Tenga en cuenta que, la segunda clave de índice redes sociales es obligatorio, por ejemplo para cubrir la siguiente consulta:

En Couchbase 5.0, esta misma consulta estará cubierta por el índice ismo al principio de este artículo.

Es importante notar que, esta característica trae mucho poder a los Índices de Arreglos. Porque, ahora cada entrada en el índice de matriz consume menos espacio de almacenamiento y memoria. Permite los siguientes beneficios:

  • Uso de índices de matrices cubiertas para matrices más grandes
  • Aumenta la eficacia y el rendimiento de las consultas que utilizan índices de matrices cubiertas.

Indexación de la metainformación del documento

Demos un giro aquí y hablemos de la nueva metainformación que se puede indexar. Antes se podían crear índices sobre la meta().id pero ahora tanto la propiedad meta().cas y meta().expiración son compatibles.

Entonces, ¿cómo creamos un índice que utilice las meta propiedades como claves? No es muy distinto de lo que ya sabes. Tomemos como ejemplo los siguientes índices de cobertura:

Ahora bien, si quisiera utilizar el idx_cas y idx_exp índices en una consulta N1QL, podría hacer algo como lo siguiente:

¿Por qué indexar estas propiedades? ¿Y si quisieras consultar todos los documentos que han caducado hoy o todos los documentos que se han modificado hoy?

Para más información sobre las propiedades CAS y de caducidad, visite aquí. Para obtener más información sobre la indexación o el uso de N1QL con Couchbase, consulte la página Portal para desarrolladores de Couchbase.

Autor

Publicado por Nic Raboy, Defensor del Desarrollador, Couchbase

Nic Raboy es un defensor de las tecnologías modernas de desarrollo web y móvil. Tiene experiencia en Java, JavaScript, Golang y una variedad de frameworks como Angular, NativeScript y Apache Cordova. Nic escribe sobre sus experiencias de desarrollo relacionadas con hacer el desarrollo web y móvil más fácil de entender.

1 Comentarios

  1. [...] Mejoras en las características de N1QL en Couchbase Server 5.0 March Developer Build [...]

Dejar una respuesta