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.
Formato de dados JSON
BSON, ou Binary JSON, é o formato de dados que o MongoDB usa para organizar e armazenar dados. Este formato de dados inclui todos os tipos de estrutura de dados JSON e também oferece suporte a outros tipos, incluindo datas, inteiros de tamanhos diferentes, valores ObjectId e dados binários. Para obter uma lista completa dos tipos compatíveis, consulte a página BSON Types no manual do MongoDB Server.
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. Para aprender mais sobre o relacionamento entre esses formatos, consulte o artigo JSON e BSON.
MongoDB e BSON
O driver Java, que usa a biblioteca BSON, permite trabalhar com dados BSON usando um dos tipos de objeto de Realm que implementa a interface BSON. Os seguintes tipos implementam a interface BSON:
Documento (pacote da biblioteca BSON)
BsonDocument (pacote da biblioteca BSON)
RawBsonDocument (pacote da biblioteca BSON)
JsonObject (pacote da biblioteca BSON)
BasicDBObject (pacote JVM)
Instale a biblioteca BSON
Esta seção mostra como adicionar a biblioteca BSON como uma dependência ao seu projeto. Se você adicionou o driver Java 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 como uma dependência ao seu projeto, consulte o guia Introdução ao driver Java.
Dica
Lista de materiais
Recomendamos adicionar a lista de materiais (BOM) do driver JVM ao seu aplicativo para gerenciar as versões dos artefatos do driver. Isso remove a necessidade de especificar uma versão para qualquer pacote individual coberto pelo BOM, simplificando o gerenciamento de dependências. Para aprender mais, consulte o guia Introdução ao driver Java.
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 de código 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.