Servidor Couchbase

Cópia de documentos entre buckets no Couchbase

Quando estou em um grupo de usuários ou em uma conferência, as pessoas geralmente me procuram depois com boas perguntas. Essa é uma ótima maneira de obter ideias para postagens no blog: se elas têm uma pergunta, é provável que muitas outras pessoas tenham a mesma. Também é uma ótima maneira de eu conhecer Couchbase melhor.

Esta postagem é para uma dessas perguntas: Posso copiar documentos de um bucket para outro??

Copiar de um bucket para outro

Sim! Na verdade, se você já fez esse tipo de coisa no SQL, então não está muito longe de já saber a resposta.

Fire buckets Image Licensed through Creative Commons via Paul Harrop - https://www.geograph.org.uk/photo/2666296
Baldes de incêndio Imagem licenciada pela Creative Commons via Paul Harrop

Existem ferramentas de linha de comando para backup/restaurar um bucket, mas, para este post, vou supor que o que você deseja é fazer uma cópia de alguns documentos do bucket A para o bucket B.

É tão fácil quanto usar um N1QL INSERT.

Comece criando um N1QL SELECT para obter os documentos que você deseja do primeiro bucket. Vou mostrar um exemplo bem simplificado SELECT que recebe todos os documentos de minha padrão balde. Se você quiser apenas um subconjunto, poderá usar um Onde cláusula.

Como estamos copiando para outro bucket, precisamos tanto da chave quanto do próprio documento. Essa consulta seleciona a chave do documento usando o parâmetro META() e seleciona o documento usando uma função _v pseudônimo.

Em seguida, criarei um INSERIR para colocar esses documentos selecionados em outro bucket, que chamei de alvo.

Um INSERIR precisa de uma chave e um valor. Eu os tenho do SELECT. Tudo pronto.

Mais informações sobre o N1QL INSERT

O link:N1QL INSERT é muito poderoso e há muitas outras coisas que você pode fazer com ele:

  • Inserir um único documento
  • Inserções a granel
  • Inserir valores usando SELECT (que é semelhante ao que fizemos nesta postagem)
  • Inserir valor com uma chave de combinação, usando uma projeção
  • Inserir valores usando subconsultas
  • Inserir valores usando funções N1QL
  • Usando o preparado INSERIR consultas

Observe que as advertências típicas se aplicam: certifique-se de ter uma boa indexação quando estiver gravando o SELECT. Se estiver copiando muitos documentos, talvez seja necessário ajustar temporariamente o tempo limite. Todos os documentos em um bucket devem ter uma chave exclusiva. Não há reversão ao inserir vários documentos: se um INSERIR falha no décimo documento de 100, os primeiros 9 documentos ainda estão inseridos.

Para obter respostas mais detalhadas sobre o N1QL, confira a seção Fórum N1QL do Couchbase.

Siga-me no Twitter Se tiver alguma dúvida: sua pergunta pode se tornar minha próxima postagem no blog!

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Matthew Groves

Matthew D. Groves é um cara que adora programar. Não importa se é C#, jQuery ou PHP: ele enviará solicitações de pull para qualquer coisa. Ele tem programado profissionalmente desde que escreveu um aplicativo de ponto de venda QuickBASIC para a pizzaria de seus pais nos anos 90. Atualmente, ele trabalha como gerente sênior de marketing de produtos da Couchbase. Seu tempo livre é passado com a família, assistindo aos Reds e participando da comunidade de desenvolvedores. Ele é autor de AOP in .NET, Pro Microservices in .NET, autor da Pluralsight e Microsoft MVP.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.