Servidor Couchbase

Achatamento e consulta de dados de matriz NoSQL com o Couchbase N1QL

Eu estava navegando no site do Couchbase fóruns e me deparei com uma pergunta sobre consultas a dados de matriz no Couchbase. Como venho de um banco de dados relacional, também tive dificuldades para entender o conceito de consulta de dados JSON formatados complexos com SQL.

Como você faz consultas nesses documentos NoSQL incorporados? Há várias maneiras, nenhuma das quais é particularmente difícil. Examinaremos algumas das possibilidades de consultas complexas.

Caso você esteja curioso sobre a pergunta com a qual me deparei, ela pode ser encontrada aqui. O usuário queria saber como consultar os objetos que estavam aninhados em uma matriz para um único documento. O modelo de documento proposto era semelhante a este:

O objetivo final era poder obter cada objeto em uma consulta com base em um ONDE que incluía a condição aninhada tipo propriedade.

Uma maneira de fazer isso é escrever uma consulta N1QL parecida com a seguinte:

Na consulta acima, estamos executando um SELECIONAR de um Bucket do Couchbase chamado fórum e achatando a matriz usando o INÚTIL palavra-chave. O conjunto de resultados achatados se pareceria com o seguinte antes de aplicar a palavra-chave ONDE condição:

O ONDE nos retornará um único resultado em vez de dois, sendo que o único resultado é de um jogos de acordo com nossa consulta.

Então, essa é a única maneira de realizar o que acabamos de fazer? Absolutamente não!

Veja a seguinte consulta N1QL:

Na consulta acima, não estamos primeiro achatando a matriz no Couchbase com um INÚTIL operação. Em vez disso, estamos usando uma das operadores de coleta para encontrar itens de matriz que atendam aos nossos critérios.

Existem outras maneiras de fazer o trabalho? É claro que existem, mas essas duas devem ser suficientes para você começar a consultar arrays no Couchbase com o N1QL e o INÚTIL palavra-chave.

Se precisar de mais ajuda com o N1QL, dê uma olhada na seção Portal do desenvolvedor do Couchbase para outros exemplos.

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

Autor

Postado por Nic Raboy, defensor dos desenvolvedores, Couchbase

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.

2 Comentários

  1. [...] em um artigo recente, escrevi sobre achatamento e consulta de arrays no Couchbase usando N1QL. Esse artigo foi inspirado por uma pergunta popular nos fóruns do Couchbase. Depois de publicar o [...]

  2. Existe uma maneira de usar o NEST desses resultados em uma matriz? Por exemplo:

    {
    "id": "order-1",
    "type": "order",
    "items": [
    {
    "id": "pokemon-blue",
    "tipo": "gaming",
    "name": "Pokemon Blue"
    }
    ]
    }

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.