Las 5 preguntas más frecuentes del Foro

¿Cómo hacer "algo" en N1QL?

En primer lugar, si no está familiarizado con N1QL le recomiendo que dedique unos minutos a nuestra formación gratuita sobre N1QL aquío simplemente jugar con él aquí.

En segundo lugar, como se trata de una pregunta amplia, repasemos algunas situaciones habituales:

 

Selecciona el id de un documento y todos sus atributos:

Cómo escribir un JOIN:

Vamos a consultar qué compañías vuelan desde el aeropuerto de San Francisco (SFO) a cualquier lugar del mundo utilizando la muestra de viajes:

En ÚNASE A se parece a un JOIN SQL estándar, la única diferencia aquí es la cláusula EN TECLAS palabra clave, para leer más al respecto consulte este artículo que explica visualmente N1QL JOINs. Couchbase 5.5 también añadirá soporte para UNIONES ANSI

Cómo seleccionar elementos de un array:

Dados documentos como:

Si queremos seleccionar a todos los niños de más de 10 años, podemos utilizar la función UNNEST palabra clave:

 

 

¿Por qué mi consulta es lenta?

Probablemente su consulta no está afectando a ningún índice. Puede comprobarlo ejecutando su consulta con la función explique de la siguiente manera:

Como se puede ver en la imagen de arriba, la consulta está golpeando el PrimaryScan lo que significa que está utilizando el índice primario. La creación de un índice secundario resolverá potencialmente su problema:

Ejecutando de nuevo la misma consulta se obtendrá algo parecido a:

Si su consulta ya está golpeando un índice, pero todavía tiene un rendimiento pobre, es posible que desee añadir un índice más optimizado (como en este ejemplo). Si no está familiarizado con cómo crear un índice, consulte esta entrada del blog

 

¿Cómo paginar los resultados en N1QL?

Puede utilizar LÍMITE y OFFSET:

Echa un vistazo este tutorial para leer más al respecto. Además, si utiliza Spring Data, puede añadir un archivo Pageable al final de la definición del método:

Y luego, en su Servicio puede utilizar la función Petición de página objeto:

 

En mi consulta faltan resultados o los resultados son erróneos

Por defecto, Couchbase soporta leer después de escribir siempre que obtengas un documento por su clave, pero tus índices y vistas se actualizan de forma asíncrona a través del Protocolo de Cambio de Datos (DCP). Por lo tanto, si ejecutas una consulta justo después de una escritura, puede que se ejecute antes de que las vistas/índices hayan tenido la oportunidad de actualizarse.

Couchbase es todo velocidad, y nadie tiene tiempo de esperar hasta que todos los índices y vistas estén actualizados para enviar la respuesta al cliente de que una escritura se ha ejecutado con éxito.

Pero hay pocos escenarios donde una fuerte consistencia entre escrituras y tus consultas son realmente necesarias, para esos casos puedes especificar vía SDK que realmente quieres esperar hasta que el índice/vista que estás usando sea actualizado:

Para obtener más información sobre la coherencia del escaneado, consulte la página documentación oficial.

En mi experiencia personal, el único escenario en el que necesito coherencia entre escrituras y consultas es durante el pruebas de integración que es cuando realmente se insertan los datos y se consultan justo después.

 

Cómo crear/utilizar índices de matrices.

Se trata de un tema interesante, ya que indexación de matrices puede acelerar significativamente su rendimiento. Supongamos que tenemos la siguiente estructura de documento:

Ahora, si necesitamos consultar reseñas de hoteles, podríamos hacer algo como:

Así pues, el índice más sencillo para el reseñas matriz se se parecen a las siguientes:

Y luego, cuando ejecutamos la consulta, voilà:

Está utilizando el índice creado recientemente.

Para más ejemplos, consulte la página documentación oficial o leer este excelente artículo sobre cómo optimizar los índices de las matrices.

 

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Denis Rosa, Defensor del Desarrollador, Couchbase

Denis Rosa es un Developer Advocate para Couchbase y vive en Munich - Alemania. Tiene una sólida experiencia como ingeniero de software y habla con fluidez Java, Python, Scala y Javascript. A Denis le gusta escribir sobre búsqueda, Big Data, AI, Microservicios y todo lo que pueda ayudar a los desarrolladores a hacer una aplicación hermosa, más rápida, estable y escalable.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.