Este blog foi publicado originalmente no site do blog pessoal de Roi Katz. Por favor clique aqui para encontrar a postagem original.

No Parte 1 Criamos nosso aplicativo pequeno, porém interessante, e até o replicamos em outro Couchbase Lite.

Mas e agora? Queremos usá-lo de fato!

Então, como usamos um banco de dados? Bem, pelo menos para "obter" os dados, você tem algumas opções:

  1. Obter por chave primária
  2. Obter por um índice (ou "selecioná-lo" onde x)

Até agora, em nosso aplicativo de exemplo simples, só podíamos usar a "chave primária" para acessar nossos dados e recuperá-los.

Mas essa não é a única maneira de obter dados do Couchbase Lite.

Nesta parte, aprenderemos os conceitos básicos da indexação do Couchbase Lite. Também conhecido como Views.

Nas exibições, executamos nossas consultas.

Portanto, precisamos:

  1. Criar visualização
  2. Executar consultas na exibição
  3. Obter os resultados

Criaremos nosso caso de uso - de como usar "exibições" no Couchbase Lite.

  1. Inicie um novo projeto WPF.
  1. Adicionar o pacote Nuget Couchbase.Lite
  1. Copie esse XAML

O que se traduz em

A GUI é gerada a partir do XAML acima
  1. Depois de obter a interface de usuário básica, que você poderá explorar mais tarde (nada de mais aqui, na verdade), vamos ao código propriamente dito.

Depois de iniciarmos tudo e inicializarmos o banco de dados, vamos definir nossas exibições.

Nesse caso, defini uma visualização, apenas para mostrar como configurar as coisas.

O que você pode ver aqui é que, depois de recuperar um nome do _database, posso definir um mapa sobre ele.

No exemplo acima, criei uma exibição chamada "docs_by_city", atribuí um delegado, verifiquei se alguma chave ("City") existia e, em seguida, a emiti para o índice. Simples assim.

Acabamos de criar nosso índice que, para cada documento, contém uma propriedade chamada City (Cidade) - ele emite o documento inteiro, mas você pode optar por emitir o que quiser, dependendo dos requisitos do aplicativo.

Ele pode ser ajustado para melhor desempenho e menor tamanho de índice.

Além disso, você pode colocar como chave qualquer string que desejar ou compor seu índice a partir de várias propriedades para atender a necessidades especiais.

Nunca é bom armazenar o documento inteiro no índice, pois isso basicamente cria uma cópia do documento dentro do índice. Tente manter seu índice o menor possível. No entanto, se você precisar de algum tipo de índice que tenha o documento inteiro como resultado, por uma questão de desempenho, é melhor manter o documento no índice em vez de acessar a propriedade result.Document - para evitar algumas viagens de ida e volta ao banco de dados.

O número "1" aqui é a versão do índice. Durante o desenvolvimento, se você alterar a função de mapa, também precisará incrementar esse número (caso não tenha excluído todo o banco de dados) para reconstruir o índice.

Há duas consultas especiais.

  1. Obter a contagem de todos os documentos. (com _database.DocumentCount)
  2. Obter todos os documentos. (com _database.CreateAllDocumentsQuery())

Depois de definirmos nossa visualização (*index), podemos começar a escrever o código e usá-lo.

  1. O uso é bastante simples, com apenas 5 etapas.
  2. Obter a visualização
  3. Criar uma consulta na exibição
  4. Defina seus critérios no índice
  5. Execute-o
  6. Leia

No código, isso parece ainda mais simples:

Quero a "Cidade" exata, por isso escrevi na chave inicial e final o mesmo valor.

Executo a consulta e verifico se há algum resultado.

Em seguida, eu "embelezo" o resultado (para cada valor) e o retorno como uma matriz JSON.

Preste atenção que não estou usando result.Document, mas result.Value, pois o uso de result.Document não usará o índice e consultará o banco de dados para cada resultado.

Portanto, para melhorar o desempenho, use result.key, result.value ou result.DocumentId.

Agora é só adicionar essa parte para gerar alguns dados...

E estamos prontos para ir!

É assim que fazemos uma visualização simples!

É claro que teremos mais informações sobre as visualizações do Couchbase lite, mas isso é apenas o começo.

É claro que precisamos criar as propriedades adequadas, portanto, para obter o projeto completo, consulte meu GitHub página.

Autor

Postado por Roi Katz, arquiteto de soluções, Couchbase

Roi é arquiteto de soluções do Couchbase, desenvolvedor de software e arquiteto com mais de 10 anos de ampla experiência no setor. Ele foi instrutor e autor de cursos com especialização em sistemas de Big Data, bancos de dados NoSQL, Couchbase, arquitetura distribuída e computação em nuvem.

Um comentário

  1. O que é _database aqui? Estou tentando implementar as coisas acima em meu aplicativo nodeJs com o servidor couchbase e, uma vez, coloquei o nome do bucket no lugar de _database, mas não consegui fazer nada certo.

Deixar uma resposta