¿Comprador o comerciante? Check-out Consulta N1QL

N1QL es un lenguaje de consulta de nueva generación para Couchbase Server. Va más allá de SQL y el modelo relacional de varias maneras - lo más importante, los atributos en N1QL pueden contener múltiples valores, y estos valores pueden ser anidados. En este blog, vamos a repasar algunas consultas N1QL que se ven comúnmente en una aplicación de comercio electrónico. Este tipo de aplicación tendría una variedad de datos ricos relacionados con productos, clientesy compras.

En primer lugar, vamos a obtener una lista de productos pertenecer a una categoría determinada (en este caso, busco "electrodomésticos")

  SELECCIONE producto

  DESDE producto

  UNNEST producto.categorías como categorías

  DONDE categorías = "Electrodomésticos"

Ahora he encontrado un aparato que quiero comprar, pero antes de pasar por caja, necesito iniciar sesión en la tienda. Tu aplicación puede almacenar perfiles de usuario en Couchbase en forma de documentos JSON como se muestra a continuación:

"resultset": [
   {
     "ccInfo": {
       "caducidad tarjeta": "2013-09-12",
       "cardNumber": “1228-1221-1221-1431”,
       "cardType": "descubrir"
     },
     "customerId": "cliente0",
     "dateAdded": “2013-06-23T04:32:31Z”,
     "dateLastActive": “2013-07-23T04:32:31Z”,
     "emailAddress": "zion@armstronghaley.biz",
     "firstName": "Rosella",
     "lastName": "Tremblay",
     "phoneNumber": "1-543-962-9861 x534",
     "código postal": "75832",
     "estado": "PR",
     "tipo": "cliente"
   }
 ]
….

Ahora, vamos a obtener una lista de clientes y sus direcciones de correo electrónico. Para ello, puede utilizar la siguiente consulta N1QL :

SELECCIONE firstName || ” “ || apellido como fullName, dirección de correo electrónico

DESDE cliente

|| se utiliza para concatenar cadenas en N1QL. El resultado de esta consulta será algo como lo siguiente -

"resultset": [
   {
     "emailAddress": "zion@armstronghaley.biz",
     "fullName": "Rosella Tremblay"
   },
   {
     "emailAddress": "kobe@douglas.net",
     "fullName": "Erich Toy"
   },
….

 

Después de conectarme, añado el artículo a mi cesta de la compra. Antes de pasar por caja, añado otros artículos que me gustan a la cesta. A continuación, envío mi pedido. Poco después, el equipo de envíos recibe la notificación de que se ha realizado un pedido y desea revisar mi orden de compra para preparar el paquete que se enviará por correo.

La siguiente consulta N1QL, preparará la orden de compra para "purchase0".
 

SELECCIONE compras, producto, cliente

DESDE compras CLAVE "compra0" UNNEST compras.lineItems AS artículos

ÚNASE A producto CLAVE artículos.producto

ÚNASE A cliente CLAVE compras.customerId

Aquí, el documento que contiene la información de compra se une a los documentos del producto y del cliente para obtener la información completa de la orden de compra.

 

A finales de año, la tienda quiere revisar sus ventas. La siguiente consulta N1QL calcula las ventas mes a mes.

SELECCIONE substr(compras.compradoEn, 0, 7) como mesredondo(suma(producto.precio unitario * artículos.cuente)/1000000, 3) como ingresosMillones

DESDE compras sin anestesia compras.lineItems como artículos únase a producto clave artículos.producto

GRUPO POR substr(compras.compradoEn, 0, 7)

PEDIR POR mes

 

¿Quieres más?

Sólo hemos repasado algunas consultas N1QL relacionadas con el comercio electrónico. Para saber más sobre N1QL, consulte  http://query.couchbase.com y no olvide inscribirse en nuestro próximo Seminario web N1QL para analizar este caso con más detalle.

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

Autor

Publicado por Don Pinto, Director Principal de Producto, Couchbase

Don Pinto es Gerente Principal de Producto en Couchbase y actualmente está enfocado en avanzar las capacidades de Couchbase Server. Es un apasionado de la tecnología de datos, y en el pasado ha escrito varios artículos sobre Couchbase Server, incluyendo blogs técnicos y libros blancos. Antes de unirse a Couchbase, Don pasó varios años en IBM, donde desempeñó el papel de desarrollador de software en el grupo de gestión de la información DB2 y, más recientemente, como director de programa en el equipo de SQL Server en Microsoft. Don tiene un máster en informática y una licenciatura en ingeniería informática por la Universidad de Toronto, Canadá.

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.