La manipulación de datos por lotes puede ser muy útil para todo tipo de operaciones. La buena noticia es que DML (lenguaje de manipulación de datos) en N1QL proporciona soporte completo para, no sólo operaciones singleton, sino para una poderosa transformación de datos por lotes. Aquí hay algunos ejemplos poderosos;
- UPDATE puede ayudarte a añadir e inicializar un nuevo atributo en documentos que no tienen el atributo last_updated. .
1 |
ACTUALIZACIÓN cubo SET última_actualización ="1/1/1973" DONDE última_actualización IS FALTA; |
O dividir un atributo name en nombre y apellidos.
1 |
ACTUALIZACIÓN por defecto SET nombre=SPLIT(nombre)[0], apellido=SPLIT(nombre)[1] UNSET nombre; |
- La sentencia INSERT puede agruparse de varias maneras. He aquí un ejemplo con VALORES.
1 |
INSERTAR EN cubo(clave,valor) VALORES("0",{"nombre":"Kaan"}), VALORES("1",{"nombre":"Lara"}), ... ; |
También suelo copiar los datos de mis cubos a otros cubos para experimentarlos utilizando INSERT. INSERT con SELECT mueve grandes conjuntos de datos con una sola sentencia. He aquí cómo crear una copia de bucket_1 bajo un nuevo nombre bucket_2.
1 |
INSERTAR EN cubo_2 (clave _k, valor _v) SELECCIONE META().id _k, _v DESDE cubo_1 _v; |
También utilizo UPSERT para fusionar los cambios de bucket_1 a bucket_2 a medida que bucket_1 cambia.
1 2 |
UPSERT EN cubo_2 (clave _k, valor _v) SELECCIONE meta().id _k, _v DESDE cubo_1 _v; |
Las actualizaciones por lotes y las operaciones masivas pueden ser difíciles de codificar sin las flexibilidades de SQL. N1QL te permite hacer todo eso y más con JSON.
Encontrará más información sobre las declaraciones LMD aquí:
INSERTAR: http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/insert.html
ACTUALIZACIÓN: http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/update.html
UPSERT: http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/upsert.html
FUSIONAR: http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/merge.html
BORRAR: http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/delete.html
Feliz prueba.
-cihan