As estruturas de dados no Couchbase 4.6 são nosso mais novo recurso de SDK que economiza tempo. Isso permite que seus aplicativos clientes mapeiem facilmente seus dados JSON baseados em array em estruturas específicas de linguagem.
Aproveitar o suporte nativo a coleções no Couchbase economizará tempo e aborrecimentos:
- Mapeie facilmente matrizes JSON em estruturas específicas da linguagem
- O Couchbase Server gerencia o documento com eficiência, usando automaticamente chamadas de subdocumentos
- Você escolhe o tipo de estrutura de dados de que precisa e começa a programar
O suporte a estruturas de dados está disponível para todas as nossas linguagens: Java, .NET, Node.js, Ir, PHP, Pythone C. Incluindo implementações poderosas de Java e .NET por meio de estruturas de coleções e todas as outras linguagens têm uma ampla gama de opções funcionais.
Esta postagem mostra como começar a usar estruturas de dados, com exemplos específicos em Java (usando o Mapa tipo) e Python (usando Lista e fila tipos). Veja abaixo o vídeo e os links de referência.
Tipos de estrutura de dados do Couchbase
Quatro tipos específicos de estruturas foram adicionados às bibliotecas de clientes do Couchbase: Mapa, Lista, Conjuntoe Fila. Todas elas são variantes de matrizes JSON no banco de dados, mas são apresentadas como tipos nativos para seu aplicativo cliente.
- Lista - uma matriz que armazena valores em ordem
- Mapa - também conhecido como dicionário - armazena valores por chave
- Conjunto - uma variante de lista que retém apenas a combinação exclusiva de valores
- Fila - uma variante de uma lista que oferece operações push e pop para adicionar/remover itens da fila em um sistema de primeiro a entrar, primeiro a sair (FIFO) maneira
Exemplos de coleções Java - Map e List
O Java e .NET As APIs têm as interfaces de coleções nativas mais rígidas. Este breve exemplo edita um documento de perfil de usuário como um Mapa e adiciona ou atualiza as informações de contato de e-mail.
À medida que o mapa é atualizado, o documento também é atualizado em segundo plano - não é necessário salvar ou inserir manualmente!
Veja muitas outras belezas Estruturas de dados do Couchbase .NET exemplos na postagem do blog de Matthew Grove.
1 2 |
Mapa<Cordas, Cordas> userInfo = novo CouchbaseMap<Cordas>("user:mnunberg", balde); userInfo.colocar("email", "mark.nunberg@couchbase.com"); |
Da mesma forma, o Lista é acessível por meio do CouchbaseArrayList e pode ser facilmente anexado a ele.
1 2 3 |
Lista<Cordas> ll = novo CouchbaseArrayList<Cordas>("user:mnunberg_list", balde); ll.adicionar("msg1"); ll.adicionar("msg2"); |
- Veja-o em ação usando Exemplos de .NET nesta postagem do blog.
Exemplos de estruturas de dados em Python - Fila
Aqui está uma mensagem simples Fila em Pythonincluindo um dicionário de registro de data e hora, remetente e algum conteúdo. Preencha a fila usando empurrar para colocar novas mensagens nele e, em seguida, usar pop para recuperar a primeira ou a próxima entrada na fila e, ao mesmo tempo, removê-la da fila.
Tudo isso é feito automaticamente nos bastidores quando você usa essas funções. Não são necessárias chamadas adicionais ao servidor para salvar as alterações Fila.
1 2 3 4 5 |
>>> cb.queue_push("mensagens::tyler", {'timestamp' (registro de data e hora): 1485389293, "de:'user::mark', "conteúdo:"Querido Tyler}, criar=Verdadeiro) >>> cb.queue_push("mensagens::tyler", {'timestamp' (registro de data e hora): 1486390293, "de:'user::jody', "conteúdo:"Caro John...}) >>> cb.queue_pop("mensagens::tyler").valor {u"conteúdo: u"Querido Tyler, u'timestamp' (registro de data e hora): 1485389293, u"de: u'user::mark'} |
Exemplos de estruturas de dados em Python - Lista
O exemplo a seguir mostra um exemplo simplificado em Python usando o Lista tipo. Em cada caso, um novo documento também é criado ao mesmo tempo em que é preenchido com valores. Consulte a seção Documentação do Couchbase Python para ver exemplos de outros tipos.
Em um caso de uso de IoT, você pode ter sensores registrando atividades específicas com registro de data e hora e valores de dados relacionados. Aqui, um sensor tem seu próprio documento e uma ID de veículo e um registro de data e hora são registrados quando detectados pelo sensor.
1 2 3 |
>>> cb.list_append("garage1", ['vehicle::1A', '2017-01-24 08:02:00'], criar=Verdadeiro) >>> cb.list_append("garage1", ['vehicle::2A', '2017-01-24 10:21:00']) >>> cb.list_append("garage1", ['vehicle::1A', '2017-01-25 17:16:00']) |
O documento resultante é uma matriz com cada entrada contendo dois valores em uma matriz.
1 2 3 |
[ [ "vehicle::1A", "2017-01-24 08:02:00" ], [ "vehicle::2A", "2017-01-24 10:21:00" ], [ "vehicle::1A", "2017-01-25 17:16:00" ] ] |
A recuperação dos valores em uma lista Python é feita facilmente. Basta pegar o documento e ele estará imediatamente disponível para iteração.
1 2 3 4 5 6 |
>>> garagem1 = cb.obter('garage1') >>> para rec em garagem1.valor: impressão rec [u'vehicle::1A', u'2017-01-24 08:02:00'] [u'vehicle::2A', u'2017-01-24 10:21:00'] [u'vehicle::1A', u'2017-01-25 17:16:00'] |
Próxima etapa
Como você pode ver, a sintaxe é fácil e previsível. Ao transferir o gerenciamento dessas estruturas para o Couchbase Server, ele simplifica muitas das comunicações necessárias para gerenciar documentos dinâmicos. Em pouco tempo, você poderá usar o Couchbase 4.6 como um servidor de estrutura de dados para seus aplicativos.
- Novo no Couchbase? Veja nosso Guia de introdução ou vá diretamente para o nosso Portal do desenvolvedor.
- Assista ao nosso Sessão do Couchbase Connect sobre estruturas de dados e mais.
- Veja mais exemplos de estruturas de dados do .NET usando Lista, Fila e Dicionário do Couchbase.
[...] Veja exemplos de código e mais detalhes em Estruturas de dados: Native Collections Novo no Couchbase 4.6. [...]
[...] Ainda há muitas outras opções que abordarei em uma futura postagem no blog - por exemplo, fazer com que o servidor realize todo o trabalho de gerenciamento de estruturas de coleções em .NET ou Java. [...]