Um dos principais objetivos do novo SDK do Couchbase .NET é aprimorar a experiência do desenvolvedor. Estamos trabalhando para atingir esse objetivo de várias maneiras:
- Reduzir o número de etapas (leia-se App.Config "gratuito") necessárias para começar a usar o Couchbase e o cliente Couchbase .NET
- Fornecimento de uma interface consistente e uniforme em todos os SDKs do cliente Couchbase
- Expondo novas maneiras fáceis de usar, flexíveis e poderosas de consultar documentos e dados não estruturados
Esta postagem se concentra no último ponto: fornecer APIs de consulta avançadas para documentos do Couchbase. Especificamente, ele trata dos novos aprimoramentos de consulta de visualização que estamos adicionando aos SDKs para simplificar ao máximo a obtenção de SEUS dados, como VOCÊ deseja!
Consultas no Couchbase
A linhagem do Couchbase é fortemente influenciada por duas implementações de persistência diferentes: um banco de dados de chave/valor e um banco de dados de documentos. Os armazenamentos K/V oferecem alta taxa de transferência e baixa latência, mas a um custo: falta de flexibilidade.
Os bancos de dados de documentos se baseiam no conceito de armazenamento K/V para armazenar documentos usando a chave como índice primário, mas acrescentam recursos adicionais para indexação secundária e composta e, o mais importante, recursos para consulta em um conjunto de chaves e agregação ou filtragem dos resultados emitindo pro
de consultas ao documento principal. No Couchbase, usamos visualizações criadas a partir de funções Map/Reduce e as expomos por meio de uma API REST que os clientes usam para consultar seus documentos.
No Couchbase Server 3.0, estamos oferecendo uma terceira maneira de acessar seus dados: N1QL, uma linguagem de consulta semelhante ao SQL. Planejamos expor o N1QL por meio de consultas ad-hoc e de um provedor LINQ no futuro - abordaremos isso em profundidade em posts futuros.
Nova sintaxe de consulta de visualização
Para o novo cliente .NET, desenvolvemos um Interface fluente abstração em torno do Exibir API Rest que oferece uma maneira intuitiva e natural de acessar e consultar documentos. Veja um exemplo:
Aqui nós
Estamos criando um objeto Cluster, que é um observador das alterações de configuração que ocorrem no cluster do Couchbase Server, e usando-o para abrir uma instância de bucket. Em seguida, criamos um objeto ViewQuery passando "true" como parâmetro, o que indica que estamos trabalhando com um visão de desenvolvimento. Em seguida, encadeamos uma série de chamadas de função que serão usadas para gerar uma solicitação REST usando o mecanismo de interface fluente. O método From(...) especifica o bucket e o documento de design a serem direcionados e o método View(...) é o Couchbase View que estamos acessando.
Depois de construirmos o objeto ViewQuery, nós o passamos para o método Get(...), que executará a solicitação REST e, em seguida, serializará os resultados em um tipo dinâmico. A vantagem de usar um tipo dinâmico aqui é que você não precisa ter um POCO explicitamente tipado definido no momento da compilação, o que proporciona bastante flexibilidade. Por fim, iteramos as linhas e exibimos os resultados.
Observe que, quando a visualização do desenvolvedor for lançada, a conversão explícita para IViewSupportable não será necessária e poderá haver algumas outras alterações, como a exigência de passar o nome do bucket para o método From(...).
Visualização do desenvolvedor!
Você deve ter notado que mencionei o DP nesta postagem e, sim, temos um planejado, mas não anunciaremos publicamente a data até o final deste mês ou início do próximo.
Obrigado pela atualização; nossa equipe de desenvolvimento está ansiosa para ver o que as atualizações incluem e não tão secretamente desejando que elas sejam lançadas no período que você citou.
[...] nova API de visualização fluente para trabalhar com visualizações criadas com o JavaScript Map/Reduce [...]