Visão geral
Neste guia, você aprenderá sobre o formato de dados BSON, como o MongoDB o usa e como instalar a biblioteca BSON independentemente do driver Java do MongoDB.
Formato de dados JSON
BSON, ou Binary JSON, é o formato de dados que o MongoDB utiliza para organizar e armazenar dados. Este formato de dados inclui todos os tipos de estrutura de dados JSON e adiciona suporte para tipos incluindo datas, inteiros de tamanhos diferentes, ObjectIds e dados binários. Para obter uma lista completa dos tipos compatíveis, consulte a página de manual do servidor Tipos BSON.
O formato binário não é legível em humanos, mas você pode utilizar a biblioteca Java BSON para convertê-lo em uma representação JSON. Você pode ler mais sobre o relacionamento entre esses formatos em nosso artigo sobre JSON e BSON.
MongoDB e BSON
O Driver Java do MongoDB , que usa a biblioteca BSON, permite que você trabalhe com dados BSON usando um dos tipos de objeto que implementa a interface BSON, incluindo:
Documento (pacote da biblioteca BSON)
BsonDocument (pacote da biblioteca BSON)
RawBsonDocument (pacote da biblioteca BSON)
JsonObject (pacote da biblioteca BSON)
BasicDBObject (pacote do Driver Java)
Para obter mais informações sobre como usar esses tipos de objetos, consulte nossoguia Documentos.
Instale a biblioteca BSON
Estas instruções mostram como adicionar a biblioteca BSON como uma dependência para seu projeto. Se você adicionou o driver Java do MongoDB como uma dependência ao seu projeto, poderá pular esta etapa, pois a biblioteca BSON já está incluída como dependência obrigatória do driver. Para instruções sobre como adicionar o driver Java do MongoDB como uma dependência ao seu projeto, consulte a seção de instalação do driver do nosso guia de Início Rápido.
Dica
Lista de materiais
Recomendamos adicionar a Lista de materiais (BOM) do driver JVM ao seu aplicação para gerenciar as versões dos artefatos do driver. Isso elimina a necessidade de especificar uma versão para qualquer pacote individual coberto pelo BOM, simplificando o gerenciamento de dependências. Para saber mais, consulte a etapa Adicionar a lista de materiais do driver do guia de Introdução.
Recomendamos que você use a ferramenta de automação de construção Maven ou Gradle para gerenciar as dependências do seu projeto. Selecione uma das seguintes abas para visualizar a declaração de dependência dessa ferramenta:
O seguinte trecho mostra a declaração de dependência na seção dependencies
do seu arquivo pom.xml
.
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>bson</artifactId> </dependency> </dependencies>
O seguinte trecho mostra a declaração de dependência no objeto dependencies
em seu arquivo build.gradle
.
dependencies { compile 'org.mongodb:bson' }
Se você não estiver usando uma das ferramentas anteriores, poderá incluí-la em seu projeto baixando o arquivo JAR diretamente do repositório sonatype.
Perguntas frequentes
Esta seção responde a perguntas que podem surgir ao usar o formato de dados BSON.
Como evito o erro "IllegalArgumentException: Nome de campo BSON inválido"?
Seu aplicação poderá lançar essa exceção se você passar um documento formatado incorretamente para uma operação e estiver usando o Java driver v4.7 ou anterior.
Observação
Nas versões v4.8 e posterior do driver, essa mensagem de erro foi substituída por uma que inclui detalhes mais específicos sobre o que foi formatado incorretamente.
Por exemplo, o driver lança esse erro quando você chama uma operação de atualização e omite incorretamente o operador de atualização, conforme mostrado no exemplo de código a seguir:
// incorrectly formatted update document collection.updateOne( new Document().append("name", "fizz"), new Document().append("name", "buzz") );
Para evitar esse erro, use a classe de construtor para a operação apropriada. O driver oferece classes de construtor para criar BSON sintaxe correta para operações MongoDB . O exemplo anterior pode ser expresso corretamente usando as classes de construtor, conforme mostrado no seguinte exemplo de código:
// Builder class imports import static com.mongodb.client.model.Filters.*; import static com.mongodb.client.model.Updates.*; // ... collection.updateOne(eq("name", "fizz"), set("name", "buzz"));
Para saber mais sobre as classes de construtores disponíveis, consulte o guia Construtores.