Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Driver Rust
/

Bancos de dados e coleções

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 recuperando uma instância de banco de dados do seu cliente. Você pode utilizar uma Database instância do para executar operações de nível do banco de dados e acessar coleções que o banco de dados contém.

Chame um dos seguintes métodos em uma instância do Client para criar Database um:

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

  • database_with_options(): definir opções (DatabaseOptions) ao recuperar um banco 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 visualizar uma lista de bancos de dados do seu sistema, chame o método list_database_names() na sua Client instância do. Este método retorna um Vec<String> tipo, um vetor contendo os nomes do banco de dados como strings.

Para ver informações detalhadas sobre cada banco de dados, chame o método list_databases() em sua Client instância. Este método retorna um Vec<DatabaseSpecification> tipo. O tipo DatabaseSpecification 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(doc! {}, None).await?;
println!("{:?}", db_list);
["admin", "local", "test_db", ...]

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

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

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.

You can explicitly create a collection by calling the create_collection() method on a Database instance. This method takes the collection name and an optional CreateCollectionOptions type as parameters. You can use a Collection instance to perform data operations, create aggregations, and manage indexes.

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", None).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() em sua Database instância do. Este método retorna um Vec<String> tipo, 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 () em sua Database instância. Este método retorna um Vec<CollectionSpecification> tipo. O tipo CollectionSpecification 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(doc! {}).await?;
println!("{:?}", coll_list);
["my_coll", "coll_xyz", ...]

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

my_coll.drop(None).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

Serialização

Nesta página