Bancos de dados e coleções
Nesta página
Visão geral
Neste guia, você pode aprender como usar o Driver .NET/C# para acessar e gerenciar bancos de dados e coleções MongoDB.
O MongoDB organiza os dados em uma estrutura hierárquica. Um sistema do MongoDB contém um ou mais bancos de dados, e cada banco de dados contém uma ou mais collections. Em cada collection, o MongoDB armazena dados como documento que contêm pares de campo e valor.
Para saber mais sobre o formato de dados do documento , consulte Documentos no manual do servidor.
Acessar um banco de dados
Você pode acessar um banco de dados de dados recuperando uma instância do IMongoDatabase da sua instância do IMongoClient
. Você pode usar a instância IMongoDatabase
retornada para executar operações em nível de banco de dados e acessar collections que o banco de dados de dados contém.
Para criar um IMongoDatabase
, chame o método GetDatabase() em uma instância do IMongoClient , passando o nome do banco de dados como um parâmetro. Você também pode passar um MongoDatabaseSettings opcional como parâmetro para personalizar como você acessa um banco de dados.
Se você passar o nome de um banco de dados inexistente para o método GetDatabase()
, o driver ainda retornará uma instância do IMongoDatabase
. Quando você insere quaisquer dados em uma coleção neste banco de dados, o servidor cria o banco de dados e a coleção naquele momento.
O exemplo abaixo cria um cliente e usa o método GetDatabase()
para acessar um banco de dados chamado test_db
:
var client = new MongoClient("<connection string>"); var myDB = mongoClient.GetDatabase("test_db");
bancos de dados de lista
Para ver uma lista dos bancos de dados de seu sistema, chame o método assíncrono ListDatabaseNamesAsync() ou o método síncrono ListDatabaseNames() em sua instância IMongoClient
.
Para ver informações detalhadas sobre cada banco de dados, chame o método assíncrono ListDatabasesAsync() ou o método síncrono ListDatabases() em sua instância IMongoClient
. Esses métodos retornam campos descrevendo os bancos de dados no cluster, como seus tamanhos e se contêm dados.
O seguinte código mostra como utilizar o método ListDatabaseNamesAsync()
assíncrono ou o método ListDatabaseNames()
síncrono para listar os nomes dos bancos de dados em um cluster:
await mongoClient.ListDatabaseNamesAsync();
mongoClient.ListDatabaseNames();
Soltar um banco de dados
A eliminação de um banco de dados exclui permanentemente todos os dados nas coleções desse banco de dados. Para descartar um banco de dados, chame o método assíncrono DropDatabaseAsync() ou o método síncrono DropDatabase() em sua instância IMongoClient
, passando o nome do banco de dados como parâmetro.
O código abaixo mostra como usar o método DropDatabaseAsync()
assíncrono ou o método DropDatabase()
síncrono para eliminar um banco de dados chamado test_db
:
await mongoClient.DropDatabaseAsync("test_db");
mongoClient.DropDatabase("test_db");
Aviso
Eliminar um reconhecimento de data center exclui os dados
Descartar um reconhecimento de data center exclui permanentemente todos os documento na collection do reconhecimento de data center e todos os índices nessas collection. Depois de descartar um reconhecimento de data center, você não poderá acessar ou restaurar nenhum de seus dados.
Acessar uma coleção
Você pode acessar uma coleção recuperando uma instância IMongoCollection do seu banco de dados. Você pode usar uma instância IMongoCollection
para executar operações de dados, criar agregações e gerenciar índices. Para recuperar um IMongoCollection
, chame o método GetCollection() em uma instância IMongoDatabase
. Você também pode passar um MongoCollectionSettings opcional como parâmetro para personalizar como você acessa uma coleção.
Se você passar o nome de uma collection inexistente para esse método, o driver ainda retornará uma instância IMongoCollection
. Quando você insere quaisquer dados nessa coleção, o servidor os cria. Para saber como criar explicitamente uma collection, consulte a seção Criar uma collection deste guia.
Este exemplo utiliza o método GetCollection()
para acessar uma coleção denominada coll_xyz
a partir de um banco de dados referenciado pela variável myDB
:
var myColl = myDB.GetCollection<BsonDocument>("coll_xyz");
Parametrização de collection
Você deve parametrizar sua instância do IMongoCollection
especificando o tipo de dados em que deseja serializar os dados da coleção. Quando você chama um método em uma instância do IMongoCollection
que é parametrizada com um tipo específico, o método aceita ou retorna instâncias deste tipo.
O exemplo a seguir mostra como parametrizar uma collection com o tipo BsonDocument
:
var collection = database.GetCollection<BsonDocument>("coll_xyz", settings);
Dica
Recomendamos que você parametrize sua instância do IMongoCollection
com um tipo personalizado que modele seus dados em vez do tipo do BsonDocument
. Você pode evitar serialização e validação repetitivas definindo um tipo que modele seus dados específicos.
Para saber mais sobre serialização no driver .NET/C#, consulte o guia sobre Serialização.
Criar uma coleção
Você pode criar explicitamente uma coleção chamando o método assíncrono CreateCollectionAsync() ou o método síncrono CreateCollection() em sua instância IMongoDatabase
.
Este método usa o nome da coleção e um tipo CreateCollectionOptions opcional como parâmetros. Você pode então acessar a coleção criada para executar operações de dados, criar agregações e gerenciar índices.
O código a seguir mostra como usar o método CreateCollectionAsync()
assíncrono ou o método síncrono CreateCollection()
para criar uma coleção chamada coll_abc
dentro de um banco de dados referenciado pela variável myDB
:
await myDB.CreateCollectionAsync("coll_abc");
myDB.CreateCollection("coll_abc");
Listar coleções
Para ver uma lista de coleções em um banco de dados, chame o método assíncrono ListCollectionNamesAsync() ou o método síncrono ListCollectionNames() em sua instância IMongoDatabase
.
Para ver informações detalhadas sobre cada banco de dados, chame o método assíncrono ListCollectionsAsync() ou o método síncrono ListCollections() em sua instância IMongoDatabase
. Esses métodos retornam campos descrevendo as collections no banco de dados, como seus tipos e configurações.
O seguinte código mostra como utilizar o método ListCollectionNamesAsync()
assíncrono ou o método ListCollectionNames()
síncrono para listar os nomes das coleções em um banco de dados:
await myDB.ListCollectionNamesAsync();
myDB.ListCollectionNames();
Solte uma coleção
A eliminação de uma coleção exclui permanentemente todos os dados dessa coleção. Para soltar uma coleção, chame o método assíncrono DropCollectionAsync() ou o método síncrono DropCollection() em sua instância IMongoCollection
.
O código abaixo mostra como usar o método DropCollectionAsync()
assíncrono ou o método DropCollection()
síncrono para eliminar um banco de dados chamado coll_abc
:
await myDB.DropCollectionAsync("coll_abc");
myDB.DropCollection("coll_abc");
Aviso
Eliminar uma collection exclui dados
Descartar uma collection do seu banco de dados exclui permanentemente todos os documentos e todos os índices dessa collection. Depois de descartar uma coleta, você não poderá acessar ou restaurar nenhum de seus dados.
Informações adicionais
Para obter mais informações sobre os conceitos deste guia, consulte a seguinte documentação:
Guia Inserir documentos
Bancos de dados e collections no manual do servidor MongoDB
Documentos no manual do servidor MongoDB