Visão geral
Este guia mostra como usar bancos de dados e collections do MongoDB com o driver Java do MongoDB.
O MongoDB organiza os dados em uma hierarquia dos seguintes níveis:
Bancos de dados
Collections
Documentos
Bancos de dados são o nível mais alto de organização de dados em uma instância MongoDB. Os bancos de dados são organizados em collections que contêm documentos. Os documentos contêm dados literais, como strings, números e datas, bem como outros documentos (incorporados). Para obter mais informações sobre tipos de campo de documento e estrutura, consulte a documentação do servidor para documentos do .
Acessar um banco de dados
Utilize o método getDatabase() de uma instância do MongoClient
para acessar um MongoDatabase
em uma instância do MongoDB.
O exemplo a seguir acessa um banco de dados denominado testDatabase
:
MongoDatabase database = mongoClient.getDatabase("testDatabase");
Acessar uma coleção
Utilize o método getCollection() de uma instância do MongoDatabase
para acessar um MongoCollection
em um banco de dados de sua instância MongoDB conectada.
O exemplo a seguir acessa uma coleção denominada testCollection
de um MongoDatabase
:
MongoDatabase database = mongoClient.getDatabase("testDatabase"); MongoCollection<Document> collection = database.getCollection("testCollection");
Dica
Se o nome da coleção fornecido ainda não existir no banco de dados, o MongoDB criará implicitamente a coleção quando você inserir os dados pela primeira vez nessa coleção.
Criar uma coleção
Utilize o método createCollection() de uma instância do MongoDatabase
para criar uma coleção em um banco de dados de sua instância MongoDB conectada.
O exemplo a seguir cria uma collection chamada exampleCollection
:
database.createCollection("exampleCollection");
Você pode especificar opções de collection, como tamanho máximo e regras de validação de documento, usando a classe CreateCollectionOptions. O método createCollection()
aceita uma instância de CreateCollectionOptions
como um segundo parâmetro opcional.
Validação do documento
A validação de documentos oferece a capacidade de validar documentos em relação a uma série de filtros durante as gravações em uma collection. Você pode especificar estes filtros usando a classe ValidationOptions, que aceita uma série de Filtros para especificar as regras e expressões de validação:
ValidationOptions collOptions = new ValidationOptions().validator( Filters.or(Filters.exists("commander"), Filters.exists("first officer"))); database.createCollection("ships", new CreateCollectionOptions().validationOptions(collOptions));
Para obter mais informações, consulte a documentação do servidor para validação de documentos.
Obter uma lista de coleções
Você pode executar query de uma lista de coleções em um banco de dados usando MongoDatabase.listCollectionNames() :
for (String name : database.listCollectionNames()) { System.out.println(name); }
Solte uma coleção
Você pode remover uma coleção do banco de dados usando o arquivo MongoCollection.drop() :
MongoCollection<Document> collection = database.getCollection("bass"); collection.drop();
Aviso
Eliminar uma coleção exclui todos os dados da coleção
Descartar uma collection do seu banco de dados também exclui permanentemente todos os documentos e todos os índices dessa collection. Somente descarte collections que contenham dados que não são mais necessários.
Soltar um banco de dados
Você pode remover um banco de dados da sua instância do MongoDB usando o arquivo MongoDatabase.drop() , conforme mostrado no exemplo a seguir :
MongoDatabase database = mongoClient.getDatabase("testDatabase"); database.drop();
Aviso
Eliminar um banco de dados exclui todos os dados do banco de dados
A eliminação de um banco de dados exclui permanentemente todas as coleções, documentos e índices desse banco de dados.
Solte um banco de dados somente se os dados nele não forem mais necessários.
Especifique o read preference, read concern e write concern
As preferências de leitura, as write concerns e as read concerns controlam como o driver direciona as operações de leitura e espera a confirmação das operações de leitura e gravação quando conectado a um conjunto de réplicas do MongoDB. As preferências de leitura e as preocupações de leitura se aplicam a todas as operações de leitura; as write concerns se aplicam a todas as operações de gravação.
MongoDatabase
instâncias herdam suas configurações de write concern, read concern e write preference do MongoClient
usado para criá-las. instâncias MongoCollection
herdam suas configurações de write concern, read concern e write preference do MongoDatabase
usado para criá-las. No entanto, você pode usar os seguintes métodos para obter uma instância de um MongoDatabase
ou MongoCollection
com uma read preference, read concern ou write preference que difere da configuração que elas normalmente herdariam:
Dica
Os métodos withReadConcern()
, withReadPreference()
e withWriteConcern
criam uma nova instância de um MongoDatabase
ou MongoCollection
com a preferência ou preocupação desejada. O MongoDatabase
ou MongoCollection
sobre o qual o método é chamado mantém suas configurações originais de preferência e preocupação.
Para obter mais informações, consulte a documentação do servidor sobre preferências de leitura, Preocupações de leitura e preocupações de gravação.