Visão geral
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.
Acessar um banco de dados
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");
bancos de dados de lista
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", ...]
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 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.
Acessar uma coleção
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:
collection_with_options(): defina opções (CollectionOptions) ao acessar uma collection por seu nome
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áveldb
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.
Parametrização de collection
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.
Criar uma coleção
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.
Listar coleções
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", ...]
Solte uma coleção
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.
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