Las características de N1QL están llegando a más y más SDKs- ahora incluyendo Ruby. Me gustaría dar una rápida introducción de cómo funcionan las consultas estructuradas en Ruby. Por el momento la librería no provee un ODM o alguna otra abstracción de alto nivel encima de ella, pero casi todo es posible de otra manera.

Se ha añadido soporte experimental para N1QL en reciente versión menor 1.3.12 aunque es posible que la API cambie en la versión final. En los siguientes ejemplos le mostraré cómo trabajar con ella utilizando nuevo conjunto de datos sobre viajesque se encuentra en el 4.0 avance para desarrolladores. En este blog, estoy asumiendo aquí que usted ha instalado la versión más reciente del cliente ruby (si no es así, por favor ejecute "gem install -v 1.3.12") y tener un Couchbase Server local con el servicio de consulta activado.

En primer lugar, vamos a establecer una conexión con el cubo:

El punto de entrada para las consultas N1QL es Couchbase::Bucket#query que acepta una cadena en N1QL y devuelve un hash con :rows y :meta donde se entrega la respuesta del servidor. Si hay un problema, la biblioteca levantará Couchbase::Error::Consulta con metadatos adjuntos para analizar el error.

Por ejemplo, vamos a crear un índice primario para todo el conjunto de datos:

Con el índice primario definido podemos obtener los documentos por sus claves:

Para simplificar los ejemplos, podemos utilizar la siguiente función para despojar :meta y extraer sólo los valores.

Vamos a responder a algunas preguntas sobre este cubo de muestra. Como recordarás, los datos de cerveza de muestra anteriores contenían unos 7.000 documentos:

Es una gran caja de arena para nuestros experimentos. ¿Qué tipo de documentos contiene?

Como tarea para casa, puedes explorar más a fondo la estructura de la base de datos de ejemplo. De momento, respondamos a algunas preguntas más prácticas. ¿Qué rutas están disponibles para alguien en Los Ángeles que quiere ver la Torre Eiffel en París? Una aplicación sencilla podría ser la siguiente (suponiendo que sepa lo que significan LAX y CDG).

Si ejecutas este código, obtendrás una tabla horaria con un buen formato de todas las rutas para ver la famosa torre, como se muestra a continuación. 

Esto es todo por el momento, por favor, déjanos tus comentarios sobre la nueva consulta. En particular, dinos qué tipo de soporte para Ruby te gustaría ver.

Autor

Publicado por Sergey Avseyev, Ingeniero SDK, Couchbase

Sergey Avseyev es Ingeniero SDK en Couchbase. Sergey Avseyev es responsable del desarrollo del conector Kafka, y la biblioteca subyacente, que implementa DCP, el protocolo de replicación de Couchbase. También mantiene PHP SDK para Couchbase.

1 Comentarios

  1. se ve bien, mirando hacia adelante para una muestra node.js :)

Dejar una respuesta