O Couchbase e os vários SDKs de servidor oferecem muitas maneiras diferentes de consultar os dados. Você pode escrever consultas N1QL, consultas de visualização ou até mesmo pesquisar documentos por sua chave. Das três maneiras possíveis de obter dados, fazer pesquisas com base em chaves definidas sempre será mais rápido do que executar uma consulta que use um índice.

O que acontece quando você tem várias chaves de documento e precisa obter todos os documentos correspondentes? A primeira coisa que vem à mente pode ser percorrer essas chaves, realizando uma operação de pesquisa em cada iteração do loop. Isso funciona, mas ao preço de uma nova solicitação de rede por pesquisa. Existe uma maneira melhor? Com certeza!

O que você pode fazer é uma operação em massa no banco de dados. Já vi essa pergunta surgir várias vezes e até mesmo escreveu um tutorial sobre como realizar essa tarefa no Node.js. No entanto, e se você não for um desenvolvedor de JavaScript? Desta vez, veremos como executar uma solicitação em lote usando a linguagem de programação Go.

Veja o aplicativo Golang a seguir, por exemplo:

No aplicativo acima, temos um Pessoa que representa cada um dos nossos documentos do Couchbase. Depois de estabelecer uma conexão com o cluster do Couchbase e abrir um determinado bucket, criamos uma fatia de operações em massa chamada itens.

Cada chave que desejamos pesquisar em nossa solicitação será inserida no seguinte itens e o valor resultante também será armazenado nele.

Usando o Fazer podemos executar a operação em massa, observando se há erros. Nesse caso, os erros não são chaves ausentes, são erros de execução. Depois de executar a solicitação, podemos fazer um loop em cada item da tabela itens slice. Se o valor de um item específico for igual ao de uma fatia inicializada, mas vazia Pessoa significa que a chave não foi encontrada no servidor. Caso contrário, imprimiremos apenas a chave e o documento encontrado.

Se você estiver interessado no tópico de desempenho, Kirk Kirkconnel escreveu uma postagem no blog que explica as diferenças. Ele pode ser encontrado em aqui. Você também pode ler sobre operações em lote na seção Couchbase documentação.

Autor

Postado por Nic Raboy, defensor dos desenvolvedores, Couchbase

Nic Raboy é um defensor das modernas tecnologias de desenvolvimento móvel e da Web. Ele tem experiência em Java, JavaScript, Golang e uma variedade de estruturas, como Angular, NativeScript e Apache Cordova. Nic escreve sobre suas experiências de desenvolvimento relacionadas a tornar o desenvolvimento móvel e da Web mais fácil de entender.

Deixar uma resposta