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 , consulte Documentos no manual do servidor.
Acessar um banco de dados
You can access a database by retrieving a Database instance from your client. You can use a Database instance to perform database-level operations and access collections that the database contains.
Call one of the following methods on a Client instance to create a Database:
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(): access the default database specified for your
Clientinstance
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
To see a list of your deployment's databases, call the list_database_names() method on your Client instance. This method returns a Vec<String> type, a vector containing the database names as strings.
To see detailed information about each database, call the list_databases() method on your Client instance. This method returns a Vec<DatabaseSpecification> type. The DatabaseSpecification type contains fields describing each database, such as its size and whether it contains data.
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);
Soltar um banco de dados
Dropping a database permanently deletes all the data in that database's collections. To drop a database, call the drop() method on your Database instance. The following code shows how to drop a database referenced by the db variable:
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
You can access a collection by retrieving a Collection instance from your database. You can use a Collection instance to perform data operations, create aggregations, and manage indexes. Call one of the following methods on a Database instance to retrieve a Collection:
collection(): recupere uma collection por seu nome
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_xyza partir de um banco de dados referenciado pela variáveldbDefinir 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 do Rust, consulte o guia sobre Modelagem de Dados e Serialização.
Criar uma coleção
Você pode criar explicitamente uma coleção ligando para o método create_collection() em uma instância do Database. Este método usa o nome da coleção e um tipo CreateCollectionOptions opcional como parâmetros. 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", 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
To see the names of the collections in a database, call the list_collection_names() method on your Database instance. This method returns a Vec<String> type, a vector containing the collection names as strings.
To see detailed information about each collection, call the list_collections() method on your Database instance. This method returns a Vec<CollectionSpecification> type. The CollectionSpecification type contains fields describing each collection, such as its type and settings.
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);
Solte uma coleção
Dropping a collection permanently deletes all the data in that collection. To drop a collection, call the drop() method on your Collection instance. The following code shows how to drop a collection referenced by the my_coll variable:
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