A manipulação de dados em lote pode ser muito útil para todos os tipos de operações. A boa notícia é que a DML (linguagem de manipulação de dados) do N1QL oferece suporte total não apenas para operações individuais, mas também para a poderosa transformação de dados em massa/lote. Aqui estão alguns exemplos poderosos;
- UPDATE pode ajudá-lo a adicionar e inicializar um novo atributo em documentos que não têm o atributo last_updated. .
1 |
ATUALIZAÇÃO balde CONJUNTO last_updated ="1/1/1973" ONDE last_updated IS FALTANDO; |
Ou dividir um atributo de nome em nome e sobrenome.
1 |
ATUALIZAÇÃO padrão CONJUNTO primeiro_nome=DIVIDIR(nome)[0], sobrenome=DIVIDIR(nome)[1] NÃO CONFIGURADO nome; |
- A instrução INSERT pode ser agrupada de várias maneiras. Aqui está um exemplo com VALUES.
1 |
INSERIR PARA balde(chave,valor) VALORES("0",{"name" (nome):"Kaan"}), VALORES("1",{"name" (nome):"Lara"}), ... ; |
Também copio com frequência os dados do meu bucket para outros buckets para experimentação usando o INSERT. O INSERT com SELECT move grandes conjuntos de dados com uma única instrução. Veja a seguir como criar uma cópia do bucket_1 com um novo nome bucket_2.
1 |
INSERIR PARA balde_2 (chave _k, valor _v) SELECIONAR META().id _k, _v DE balde_1 _v; |
Também uso o UPSERT para mesclar as alterações do bucket_1 para o bucket_2 conforme as alterações do bucket_1.
1 2 |
UPSERT PARA balde_2 (chave _k, valor _v) SELECIONAR meta().id _k, _v DE balde_1 _v; |
Atualizações em lote e operações em massa podem ser difíceis de codificar sem as flexibilidades do SQL. O N1QL permite que você faça tudo isso e muito mais com JSON!
Você pode encontrar mais detalhes sobre as instruções DML aqui:
INSERIR: 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
EXCLUIR: http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/delete.html
Feliz teste.
-cihan