Estructuras de Datos en Couchbase 4.6 es nuestra nueva característica SDK que ahorra tiempo. Permiten a tus aplicaciones cliente mapear fácilmente tus datos JSON basados en arrays en estructuras específicas del lenguaje.
Aprovechar el soporte nativo de colecciones en Couchbase te ahorrará tiempo y molestias:
- Asigne fácilmente matrices JSON a estructuras específicas del idioma
- Couchbase Server gestiona el documento eficientemente - automáticamente usando llamadas a sub-documentos
- Elige el tipo de estructura de datos que necesitas y empieza a codificar
Todos nuestros lenguajes son compatibles con las estructuras de datos: Java, .NET, Node.js, Vaya a, PHP, Pythony C. Incluyendo potentes implementaciones Java y .NET a través de Collections Frameworks y todos los demás lenguajes tienen una amplia gama de opciones funcionales.
Este post muestra cómo empezar a utilizar las Estructuras de Datos, con ejemplos específicos en Java (utilizando el Mapa tipo) y Python (utilizando Lista y cola tipos). Vídeo y enlaces de referencia a continuación.
Tipos de estructuras de datos de Couchbase
Se han añadido cuatro tipos específicos de estructuras a las bibliotecas cliente de Couchbase: Mapa, Lista, Establecery Cola. Son todas variantes de matrices JSON en la base de datos pero presentadas como tipos nativos a su aplicación cliente.
- Lista - una matriz que almacena valores en orden
- Mapa - también conocido como diccionario - almacena valores por clave
- Establecer - una variante de lista que sólo conserva la combinación única de valores
- Cola - una variante de una lista que ofrece operaciones push y pop para añadir/eliminar elementos de la cola en un orden de llegada (FIFO) manera
Ejemplos de Java Collections - Map & List
En Java y .NET Las APIs tienen las interfaces nativas de Collections más ajustadas. Este breve ejemplo edita un documento de perfil de usuario como un Mapa y añade o actualiza la información de contacto por correo electrónico.
A medida que se actualiza el mapa, también lo hace el documento en segundo plano, sin necesidad de guardarlo o insertarlo manualmente.
Ver muchas más Estructuras de datos Couchbase .NET ejemplos en la entrada del blog de Matthew Grove.
1 2 |
Mapa<Cadena, Cadena> userInfo = nuevo CouchbaseMap<Cadena>("usuario:mnunberg", cubo); userInfo.poner("email", "mark.nunberg@couchbase.com"); |
Del mismo modo, el Lista es accesible a través de CouchbaseArrayList y se puede añadir fácilmente.
1 2 3 |
Lista<Cadena> ll = nuevo CouchbaseArrayList<Cadena>("user:mnunberg_list", cubo); ll.añada("msg1"); ll.añada("msg2"); |
- Véalo en acción con .NET en esta entrada del blog.
Python Estructuras de Datos Ejemplos - Cola
He aquí un mensaje sencillo Cola en Pythoncon un diccionario de fecha y hora, remitente y contenido. Rellene la cola con pulse para introducir nuevos mensajes y, a continuación, utilizar pop para recuperar la primera o la siguiente entrada de la cola, a la vez que la elimina de la cola.
Todo esto se hace automáticamente entre bastidores cuando utilizas estas funciones. No se requieren llamadas adicionales al servidor para guardar los cambios. Cola.
1 2 3 4 5 |
>>> cb.queue_push("mensajes::tyler", {'timestamp': 1485389293, "de:usuario::marca, contenido:Querido Tyler}, crear=Verdadero) >>> cb.queue_push("mensajes::tyler", {'timestamp': 1486390293, "de:usuario::jody, contenido:"Querido John...}) >>> cb.queue_pop("mensajes::tyler").valor {ucontenido: uQuerido Tyler, u'timestamp': 1485389293, u"de: uusuario::marca} |
Ejemplos de Estructuras de Datos en Python - Lista
El siguiente ejemplo muestra un ejemplo simplificado de Python utilizando la función Lista tipo. En cada caso también se crea un nuevo documento al mismo tiempo que se rellena con valores. Véase el Documentación sobre Couchbase Python para ver ejemplos de los otros tipos.
En un caso de uso de IoT puede haber sensores que registren actividades específicas con marca de tiempo y valores de datos relacionados. En este caso, un sensor tiene su propio documento y se registra un ID de vehículo y una marca de tiempo cuando el sensor lo detecta.
1 2 3 |
>>> cb.list_append("garaje1", [vehículo::1A, '2017-01-24 08:02:00'], crear=Verdadero) >>> cb.list_append("garaje1", [vehículo::2A, '2017-01-24 10:21:00']) >>> cb.list_append("garaje1", [vehículo::1A, '2017-01-25 17:16:00']) |
El documento resultante es una matriz en la que cada entrada contiene dos valores.
1 2 3 |
[ [ "vehículo::1A", "2017-01-24 08:02:00" ], [ "vehículo::2A", "2017-01-24 10:21:00" ], [ "vehículo::1A", "2017-01-25 17:16:00" ] ] |
Recuperar los valores en una lista Python se hace fácilmente. Simplemente coge el documento y estará disponible al instante para iterar sobre él.
1 2 3 4 5 6 |
>>> garaje1 = cb.consiga(garaje1) >>> para rec en garaje1.valor: imprimir rec [uvehículo::1A, u'2017-01-24 08:02:00'] [uvehículo::2A, u'2017-01-24 10:21:00'] [uvehículo::1A, u'2017-01-25 17:16:00'] |
Siguiente paso
Como puedes ver, la sintaxis es fácil y predecible. Al descargar la gestión de estas estructuras a Couchbase Server se simplifican muchas de las comunicaciones necesarias para gestionar documentos dinámicos. En poco tiempo puedes estar usando Couchbase 4.6 como servidor de estructuras de datos para tus aplicaciones.
- ¿Eres nuevo en Couchbase? Consulte nuestro Guía de iniciación o vaya directamente a nuestro Portal para desarrolladores.
- Vea nuestro Sesión de Couchbase Connect sobre estructuras de datos y mucho más.
- Ver más ejemplos de Estructuras de Datos .NET utilizando Couchbase List, Queue y Dictionary.
[...] Ver ejemplos de código y más detalles en Estructuras de Datos: Native Collections Nuevo en Couchbase 4.6. [...]
[...] Todavía hay un montón de otras opciones que voy a tocar en una futura entrada del blog - por ejemplo, conseguir que el servidor haga todo el trabajo de gestión de los marcos de colecciones en .NET o Java. [...]