Menu Docs
Página inicial do Docs
/ / /
C#/.NET
/

Bancos de dados e coleções

Nesta página

  • Visão geral
  • Acessar um banco de dados
  • bancos de dados de lista
  • Soltar um banco de dados
  • Acessar uma coleção
  • Parametrização de collection
  • Criar uma coleção
  • Listar coleções
  • Solte uma coleção
  • Informações adicionais

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, consulteDocumentos do no manual do servidor MongoDB.

Você pode acessar um banco 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 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");

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();

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.

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");

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.

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");

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();

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.

Para obter mais informações sobre os conceitos deste guia, consulte a seguinte documentação:

Voltar

Compactação de rede

Próximo

Operações CRUD