Ruby e SQL para Documentos (anteriormente N1QL): Uma Primeira Prova

Os recursos do N1QL estão chegando a mais e mais SDKs - agora incluindo o Ruby. Gostaria de fazer uma rápida introdução sobre como funcionam as consultas estruturadas em Ruby. No momento, a biblioteca não oferece um ODM ou alguma outra abstração de alto nível, mas praticamente tudo é possível de outra forma.

O suporte experimental para N1QL foi adicionado em Versão secundária recente 1.3.12 embora seja possível que a API seja alterada na versão final. Nos exemplos abaixo, mostrarei como trabalhar com ela usando novo conjunto de dados de viagensque está no Visualização para desenvolvedores do 4.0. Neste blog, estou assumindo que você instalou a versão mais recente do cliente ruby (caso contrário, execute "gem install -v 1.3.12") e ter um Couchbase Server local com o serviço de consulta ativado.

Primeiro, vamos estabelecer uma conexão com o bucket:

O ponto de entrada para as consultas N1QL é Couchbase::Bucket#query que aceita uma string em N1QL e retorna um hash com :rows e :meta onde a resposta do servidor foi entregue. Se houver um problema, a biblioteca levantará Couchbase::Error::Query com metadados anexados para analisar o erro.

Por exemplo, vamos criar um índice primário para todo o conjunto de dados:

Com o índice primário definido, podemos buscar os documentos por suas chaves:

Para simplificar os exemplos, podemos usar a seguinte função para remover :meta e extrair apenas os valores.

Vamos responder a algumas perguntas sobre essa amostra de balde. Como você deve se lembrar, a amostra anterior de dados de cerveja continha cerca de 7 mil documentos, vamos ver quantos documentos esta tem:

Essa é uma excelente caixa de areia para nossos experimentos. Que tipo de documentos ela contém?

Como tarefa de casa, você pode explorar mais a estrutura do banco de dados de amostra. Por enquanto, vamos responder a algumas perguntas mais práticas. Quais rotas estão disponíveis para alguém em Los Angeles que deseja ver a Torre Eiffel em Paris? Uma implementação simples poderia ser assim (supondo que você saiba o que significam LAX e CDG).

Se você executar esse código, obterá uma tabela de tempo bem formatada de todas as rotas para ver a famosa torre, conforme mostrado abaixo. 

Isso é tudo para a introdução no momento. Por favor, deixe seu feedback sobre a nova consulta. Em particular, diga-nos que tipo de suporte a Ruby você gostaria de ver!

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

Autor

Postado por Sergey Avseyev, engenheiro de SDK, Couchbase

Sergey Avseyev é engenheiro de SDK na Couchbase. Sergey Avseyev é responsável pelo desenvolvimento do conector Kafka e da biblioteca subjacente, que implementa o DCP, o protocolo de replicação do Couchbase. Também mantém o PHP SDK para o Couchbase.

Um comentário

  1. parece bom, estou ansioso por uma amostra de node.js :)

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.