Batch data manipulation can be super handy for all sorts of operations. Good news is, DML (data manipulation language) in N1QL provides full support for, not just singleton operations, but for powerful bulk/batch data transformation. Here are a few powerful examples;
– UPDATE can help you add and initialize a new attribute in documents that do not have the last_updated attribute. .
1 |
ATUALIZAÇÃO balde CONJUNTO last_updated ="1/1/1973" ONDE last_updated IS FALTANDO; |
Or break a name attribute into first and last name.
1 |
ATUALIZAÇÃO padrão CONJUNTO primeiro_nome=DIVIDIR(nome)[0], sobrenome=DIVIDIR(nome)[1] NÃO CONFIGURADO nome; |
– INSERT statement can batch in a few ways. Here is a sample with VALUES.
1 |
INSERIR PARA balde(chave,valor) VALORES("0",{"name" (nome):"Kaan"}), VALORES("1",{"name" (nome):"Lara"}), ... ; |
I also frequently copy my bucket data to other buckets for expimentation using INSERT. INSERT with SELECT moves large sets of data around with a single statement. Here is how to create a copy of bucket_1 under a new name bucket_2.
1 |
INSERIR PARA bucket_2 (chave _k, valor _v) SELECIONAR META().id _k, _v DE bucket_1 _v; |
I also use UPSERT to merge the changes from bucket_1 to bucket_2 as bucket_1 changes.
1 2 |
UPSERT PARA bucket_2 (chave _k, valor _v) SELECIONAR meta().id _k, _v DE bucket_1 _v; |
Batch updates and bulk operations can be challenging to code without flexibilities of SQL. N1QL lets you do all that and more with JSON!
You can find more details on DML statements here:
INSERT: http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/insert.html
ATUALIZAÇÃO: 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
MERGE: http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/merge.html
DELETE: http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/delete.html
Feliz teste.
-cihan