Servidor Couchbase

Aprimoramentos de recursos do N1QL no Couchbase Server 5.0 March Developer Build

Com a recente versão de desenvolvedor de março de 2017 do Couchbase, houve muitas correções de bugs, mas também aprimoramentos de recursos para tecnologias essenciais como o N1QL. Por exemplo, agora os índices podem ser criados em várias meta-informações, como os valores de cas e expiração do documento. Outro exemplo inclui uma sintaxe simplificada ao criar índices de matriz.

Vamos dar uma olhada em alguns desses aprimoramentos e como você pode usá-los em seu próprio aplicativo.

Indexação de matriz simplificada no Couchbase 5.0

Com o Couchbase Server 4.5, veio a indexação de matriz. Veja o seguinte documento de amostra, por exemplo:

Nova sintaxe de índice de matriz

Antes do Couchbase 5.0, para indexar os elementos da matriz encontrados em mídia social você tinha que escrever um índice parecido com o seguinte:

No exemplo acima, o PARA era necessário para a indexação do array. No Couchbase Server 5.0, há uma sintaxe muito mais simplificada. O mesmo índice pode ser criado da seguinte forma:

Para garantir que seu índice funcione, você pode executar a seguinte consulta N1QL:

Ao examinar os resultados da EXPLICAR você verá que ele está usando o ismo que foi criado anteriormente.

O fato de a sintaxe simplificada existir não significa que você não possa usar a sintaxe anterior na indexação de matriz. O exemplo a seguir seria um exemplo perfeito de por que a sintaxe anterior ainda seria válida:

Observe que a QUANDO foi usado ao criar o operador ism_website índice acima.

Mais informações sobre indexação de matriz podem ser encontradas aquijuntamente com outra documentação útil sobre a criação de índices no Couchbase.

Requisito de correspondência de variável relaxada para índices de matriz

Nas versões 4.x, a indexação de matriz exigia o uso de nomes de variáveis exatamente iguais no SELECIONAR que foram usadas na consulta CRIAR ÍNDICE declaração. Veja mais detalhes aqui.

Por exemplo, referindo-se às consultas anteriores vistas acima, observe que a variável mídia que é usado para iterar pela matriz mídia social é muito importante. A indexação de matrizes na versão 4.x exige o nome exato da variável mídia a ser usado no SELECIONAR consulta.

A versão 5.0 do Couchbase relaxa esse requisito, e a consulta a seguir funcionaria perfeitamente bem:

Observe que o índice ismo usa o nome da variável mídiamas a consulta acima usa m. Ainda assim, a consulta acima pode usar o índice ismo com sucesso.

Um requisito de chave de índice de matriz inteira descontraído para índices de matriz

Lembre-se também de que, nas versões 4.x, a indexação de matriz coberta exige todo o atributo da matriz como uma chave de índice obrigatória na definição do índice da matriz. Por exemplo, veja novamente a consulta a seguir:

O índice da matriz coberta correspondente à consulta acima seria:

Observe que a segunda chave de índice mídia social é obrigatório, por exemplo, para cobrir a consulta a seguir:

No Couchbase 5.0, essa mesma consulta será coberta pelo índice ismo no início deste artigo.

É importante observar que esse recurso traz muito poder aos índices de matriz. Porque, agora, cada entrada no índice de matriz consome menos espaço de armazenamento e memória. Ele permite os seguintes benefícios:

  • Uso de índices de matriz cobertos para matrizes maiores
  • Proporciona mais eficiência e desempenho às consultas que usam índices de matriz cobertos

Indexação de meta-informações de documentos

Vamos dar uma guinada e discutir as novas metainformações que podem ser indexadas. Anteriormente, os índices podiam ser criados na variável meta().id mas agora tanto a propriedade meta().cas e meta().expiração são compatíveis.

Então, como criamos um índice que usa as metapropriedades como chaves? Não é muito diferente do que você já sabe. Veja os seguintes índices de cobertura, por exemplo:

Agora, se eu quisesse usar o idx_cas e idx_exp em uma consulta N1QL, eu poderia fazer algo como o seguinte:

Então, por que seria possível indexar essas propriedades? Bem, e se você quisesse fazer uma consulta de todos os documentos que expiraram hoje ou de todos os documentos que foram modificados hoje?

Para obter mais informações sobre o CAS e as propriedades de expiração, acesse aqui. Para obter mais informações sobre a indexação ou o uso do N1QL com o Couchbase, consulte a seção Portal do desenvolvedor do Couchbase.

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

Author

Posted by Nic Raboy

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.

Um comentário

  1. [...] Aprimoramentos de recursos do N1QL no Couchbase Server 5.0 March Developer Build [...]

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.