Node.js

Cómo consultar datos JSON con SQL++ para Node.js y Couchbase

Hoy es el día tu aplicación Node.js aprende "go fetch".

Siguiendo este tutorial básico, aprenderás a construir una API REST para tu aplicación Node.js que envíe consultas SQL++ (también conocidas como N1QL) para recuperar datos de Couchbase.

Este post continúa mi serie introductoria sobre usando Node.js con Couchbaseincluyendo funciones asíncronas y Creación de una API REST con Node.js y Express.

El post de hoy continúa donde lo dejaron los anteriores tras construir una API REST para la recuperación directa de documentos.

Configuración de la base de datos Couchbase

Este post asume que usted ha instalado el viaje-muestra Cubo que viene con todo Couchbase instalaciones. Es importante que tenga instalado este conjunto de datos porque utilizaremos índices que se crean automáticamente y se utilizarán criterios específicos de documentos que son totalmente repetibles.

La conectividad básica y los cimientos de la API REST ya están establecidos en el guión que creamos juntos la semana pasada. Lo incluiré en el ejemplo de código de hoy, pero tendrás que leer todas las entradas anteriores (enlazadas más arriba) para obtener una explicación completa.

Además, en aras de la simplicidad en el ejemplo de hoy, usaremos los Scopes y Collections por defecto. Como de costumbre, cuando se trata de Query JSON data, también asumiré que tienes una familiaridad básica con JavaScript, Node.js y bases de datos de documentos NoSQL.

Entender las consultas N1QL

En Lenguaje de consulta N1QL para Couchbase es casi exactamente como SQL, con unas pocas excepciones.

Cuando una consulta N1QL solicita una columna específica de un Bucket, devuelve una lista de todos los documentos JSON coincidentes en el Bucket. Si no hay datos en el documento para la columna entonces se obtiene un NULL a menos que se filtre con un valor DONDE cláusula.

Como mínimo, debe existir un índice primario en los documentos para que éstos puedan consultarse. Sin embargo, el rendimiento de las consultas mejora cuando existe un índice secundario definido para una columna determinada.

Ambos índices pueden crearse con una consulta propiamente dicha y pueden hacerse mediante un script o a través de la función Consola web de Couchbase. De hecho, puedes conocer estos índices y ver la consulta utilizada para crearlos explorándolos en la consola web.

Couchbase web console showing query index being created

En el ejemplo anterior, se ha creado un índice en la columna denominada ciudad dentro de cualquier documento que se encuentre en el viaje-muestra Cubo.

Ejemplo de consulta

Antes de sumergirte en el código, puedes ejecutar consultas directamente en la consola web para asegurarte de que devuelven lo que esperas. Cambie a la función Consulta e introduzca la siguiente consulta, después pulse Ejecute.

Los resultados muestran en la consola que 323 documentos coinciden. Observe que se devuelve una mezcla de documentos: hoteles, aeropuertos, etc., como se muestra en el gráfico tipo columna. (Ahora, estoy diciendo "columnas" pero por supuesto estos son en realidad objetos/elementos JSON que podrían estar incrustados dentro de otros objetos).

Modifique su consulta para que sólo devuelva unas pocas columnas, como en el ejemplo siguiente.

Couchbase N1QL Query of Travel-sample database

Creación de una función de consulta

Antes de sumergirnos en el resto del código, empezaremos por ver lo básico de pasar consultas utilizando el SDK de Node.js.

En lugar de pasar una cadena de consulta completamente formada, querrás utilizar los marcadores de posición incorporados para que sea código reutilizable. En este caso, utiliza parámetros con nombre: Su consulta tendrá una variable de marcador de posición, y usted pasará una variable con los valores a utilizar.

En primer lugar, cree la variable de consulta:

A continuación, cree la variable de parámetros de entrada:

A continuación, pasa ambos datos a la función de consulta del clúster para que inicie y devuelva los resultados:

La función completa que crea ahora es posible:

REST-ificar su consulta

El siguiente paso es añadir esta función de consulta a nuestro anterior ejemplo de código de la API REST para poder introducir el nombre de una ciudad y devolver los resultados HTTP al navegador.

En primer lugar, haga que la función pase una variable para el nombre de la ciudad, como se indica a continuación:

A continuación, cree un punto final de consulta (en lugar del archivo consiga que usamos en un post anterior) y mover la lógica de la respuesta REST a esa función.

Esto devuelve el RAW JSON de la llamada REST, como se muestra en la imagen de abajo en el navegador web o en la herramienta Postman REST API.

couchbase N1QL query response from a REST API with node.js

Ejemplo de código completo

Aquí está el resultado completo del código de ejemplo. Tenga en cuenta que algunos códigos anteriores de otros artículos se mantienen para su referencia.

Conclusión

Hay un montón de nuevas direcciones que puede tomar este proyecto. Para empezar, es posible que desee incluir la captura de errores adecuada, información de registro de salida a la consola, o el uso de la resultados.filas para crear resultados tabulares.

Le animo a profundizar en la documentación de Couchbase sobre el uso de consultas del SDK de Node.js.

Póngase al día con el resto de la serie Node.js + Couchbase how-to:

 

¿Listo para arremangarse y hacerlo usted mismo?
Pruebe Couchbase hoy mismo

 

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

Autor

Publicado por Tyler Mitchell - Director de Marketing de Producto

Trabaja como Gerente Senior de Marketing de Producto en Couchbase, ayudando a llevar el conocimiento sobre los productos a la luz pública, mientras que también apoya a nuestros equipos de campo con contenido valioso. Su pasión personal es todo lo geoespacial, habiendo trabajado en GIS durante la mitad de su carrera. Ahora la IA y la búsqueda vectorial son lo primero en lo que piensa.

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.