Menu Docs
Página inicial do Docs
/ / /
Driver Rust
/

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ê verá como usar o driver Rust para acessar e managed reconhecimento de data center e collection do 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 de dados recuperando um banco de dados instância do seu cliente. Você pode usar uma Database instância para executar operações em nível de banco de dados e acessar collections que o banco de dados de dados contém.

Chamar um dos seguintes métodos em um cliente instância para criar um Database:

  • banco de dados() : recuperar um banco de dados por seu nome

  • database_with_options(): definir opções (DatabaseOptions) ao recuperar um banco de dados de dados por seu nome

  • default_database(): acesse o banco de dados padrão especificado para sua Client instância

Dica

Para especificar o reconhecimento de data center padrão para seu cliente, defina o campo default_database de sua estrutura ClientOptions . Se você não definir esse campo, o driver obterá o reconhecimento de data center padrão do componente defaultauthdb da string de conexão.

Se você passar o nome de um reconhecimento de data center inexistente para os métodos database() ou database_with_options() , o driver ainda retornará uma instância Database . Quando você insere qualquer dado na collection desse reconhecimento de data center, o servidor o cria.

O exemplo a seguir utiliza o método database() para acessar um banco de dados denominado test_db:

let db = client.database("test_db");

Para ver uma lista dos bancos de dados do seu sistema, chame o list_database_names() na sua Client instância do . Este método retorna um tipo Vec<String> , um vetor contendo os nomes do banco de dados como strings.

Para ver informações detalhadas sobre cada banco de dados, chame o list_databases () na sua Client instância do . Este método retorna um tipo Vec<DatabaseSpecification> . Especificação do Banco de Dados tipo contém campos que descrevem cada banco de dados, como seu tamanho e se contém dados.

O seguinte exemplo mostra como imprimir uma lista de reconhecimento de data center utilizando o método list_database_names() :

let db_list = client.list_database_names().await?;
println!("{:?}", db_list);
["admin", "local", "test_db", ...]

A eliminação de um banco de dados de dados exclui permanentemente todos os dados nas coleções desse banco de dados. Para soltar um banco de dados de dados, chame o método drop() na sua instância do Database . O seguinte código mostra como descartar um banco de dados de dados referenciado pela variável db :

db.drop().await?;

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 collection recuperando uma collection instância do seu banco de dados. Você pode usar uma instância Collection para executar operações de dados, criar agregações e gerenciar índices. Ligue para um dos seguintes métodos em uma instância Database para recuperar um Collection:

Se você passar o nome de uma coleção inexistente para os métodos collection() ou collection_with_options() , o driver ainda retornará uma instância Collection . 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 collection_with_options() para executar a seguinte ação:

  • Acessar uma coleção chamada coll_xyz a partir de um banco de dados referenciado pela variável db

  • Definir uma write preference na collection no tipo CollectionOptions

let wc = WriteConcern::builder().journal(true).build();
let coll_opts = CollectionOptions::builder().write_concern(wc).build();
let my_coll: Collection<Document> = db.collection_with_options("coll_xyz", coll_opts);

Para saber mais sobre write concerns, consulte Write Concern no manual do servidor MongoDB.

Você deve parametrizar sua instância do Collection 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 Collection que é parametrizada com um tipo específico, o método aceita ou retorna instâncias deste tipo.

Observação

Se você não parametrizar sua instância do Collection , o compilador inferirá o tipo genérico quando você executar uma operação CRUD com um tipo de dados especificado no mesmo escopo.

O exemplo seguinte mostra formas equivalentes de parametrizar uma collection com o tipo Document :

let my_coll: Collection<Document> = client.database("test_db").collection("coll_xyz");
let my_coll = client.database("test_db").collection::<Document>("coll_xyz");

Dica

Recomendamos que você parametrize sua instância do Collection com um tipo personalizado que modele seus dados em vez do tipo do Document . 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 Rust, consulte o guia sobre Modelagem e serialização de dados.

Você pode criar explicitamente uma coleção chamando o create_collection () em uma instância Database do . Este método usa o nome da coleção como parâmetro. Você pode usar uma instância Collection para executar operações de dados, criar agregações e gerenciar índices.

O código a seguir mostra como criar uma collection chamada coll_abc dentro de um reconhecimento de data center referenciado pela variável db :

db.create_collection("coll_abc").await?;

Ao criar uma collection, você pode implementar a validação de esquema para manter um documento consistente e controlar se alguma operação de gravação pode ignorar as regras de validação. Para saber como habilitar esse recurso, consulte o guia sobre Validação de Esquema.

Para ver os nomes das coleções em um banco de dados, chame o método list_collection_names() na sua Database instância do . Este método retorna um tipo Vec<String> , um vetor contendo os nomes das coleções como strings.

Para ver informações detalhadas sobre cada coleção, chame o método list_collections() na sua Database instância do . Este método retorna um tipo Vec<CollectionSpecification> . A Especificação da Coleção type contém campos que descrevem cada collection, como seu tipo e configurações.

O exemplo abaixo mostra como imprimir os nomes das collections em um banco de dados referenciado pela variável db utilizando o método list_collection_names() :

let coll_list = db.list_collection_names().await?;
println!("{:?}", coll_list);
["my_coll", "coll_xyz", ...]

A eliminação de uma coleção exclui permanentemente todos os dados dessa coleção. Para descartar uma coleção, chame o método drop () na sua Collection instância do . O seguinte código mostra como descartar uma coleção referenciada pela variável my_coll :

my_coll.drop().await?;

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

Modelagem e serialização de dados