Há muitas maneiras diferentes de consultar dados no Servidor Couchbase. Você pode fazer pesquisas diretas de documentos
com base em sua chave, você pode consultar exibições ou até mesmo escrever consultas N1QL.
Quando se trata de obter dados, fazer uma pesquisa com base em uma chave de documento sempre será mais rápido do que fazer uma consulta.
O que acontece quando você tem um punhado de chaves que precisa pesquisar? Você poderia facilmente percorrer essas chaves
usando um dos SDKs, mas essa é uma nova solicitação de rede por operação. Você sabia que é possível fazer uma transferência em lote de
essas chaves em uma única solicitação?
Já vi essa pergunta algumas vezes, então achei que seria útil escrever sobre como fazer isso acontecer. Vamos lá
Use o cenário em que temos 1.000 chaves que precisamos procurar em um aplicativo Node.js. Para fazer isso, nosso
O código pode ser parecido com o seguinte:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
var Couchbase = exigir("couchbase"); var agrupamento = novo Couchbase.Aglomerado("couchbase://localhost"); var balde = agrupamento.openBucket("default", ""); balde.getMulti(["234adsf", "bab7", "fe3f9921"], função(erro, resultados) { se(erro) { console.registro(erro + " failed to be retrieved" (não foi possível recuperar)); } para(var chave em resultados) { se(resultados.hasOwnProperty(chave)) { se(resultados[chave].erro) { console.registro("`" + chave + "`: " + JSON.stringify(resultados[chave])); } } } processo.saída(0); }); |
No exemplo acima, estamos nos conectando a uma instância do Couchbase executada localmente e abrindo o arquivo padrão
balde. A intenção é fazer uma única solicitação para obter três documentos diferentes com base em suas chaves. Esse
é possível por meio do getMulti no Node.js. Se as chaves do documento não existirem no
Couchbase ou houver algum outro problema, serão retornados erros nos resultados.
Se você estiver interessado no tópico de desempenho, Kirk Kirkconnel escreveu uma postagem no blog que explica a
diferenças. Ela pode ser encontrada aqui. O senhor
também pode ler sobre as operações em lote no documentação.
[...] Se você observar o EXPLAIN da consulta acima, verá que nenhum índice foi usado na consulta. O tipo de consulta acima seria útil se você soubesse as chaves que deseja obter e quisesse um desempenho incrivelmente rápido, semelhante ao que foi feito em um artigo anterior que escrevi, intitulado Obtendo vários documentos por chave em uma única operação com o Node.js. [...]