Visão geral
Neste guia, você pode aprender como remover documento de sua collection MongoDB usando operações de exclusão.
Este guia inclui as seguintes seções:
Amostra de dados para exemplos apresenta os dados de amostra que são usados pelo exemplo de operação de exclusão
Operações de exclusão descreve como usar o driver para executar operações de exclusão
Informações adicionais fornecem links para recursos e documentação da API para os tipos e métodos mencionados neste guia
Dados de amostra para exemplos
O exemplo deste guia usa os seguintes documentos de amostra. Cada documento representa um item no estoque de uma loja e contém informações sobre sua categorização e preço unitário:
{ "item": "trowel", "category": "garden", "unit_price": 9.89 }, { "item": "placemat", "category": "kitchen", "unit_price": 3.19 }, { "item": "watering can", "category": "garden", "unit_price": 11.99 }
Excluir operações
O driver Rust fornece os métodos delete_one() e delete_many() para executar operações de exclusão.
Parâmetros
Os métodos delete_one() e delete_many() usam um filtro de query como parâmetro. Um filtro de query consiste nos campos e valores que formam critérios para a correspondência de documentos.
Opcionalmente, você também pode passar um tipo DeleteOptions como parâmetro para qualquer método. Você pode especificar as configurações em uma instância DeleteOptions para configurar a operação de exclusão. Para usar valores padrão para cada configuração, especifique o valor None como o parâmetro de opções.
Observação
Opções de Instanciação
O driver Rust implementa o padrão de design Builder para a criação de muitos tipos diferentes, incluindo DeleteOptions. Você pode usar o método builder() de cada tipo para construir uma instância de opções encadeando as funções do construtor de opções, uma de cada vez.
A tabela a seguir descreve as configurações que você pode especificar em uma instância do DeleteOptions :
Opção | Descrição |
|---|---|
| The collation to use when sorting results. To learn more about collations,
see the Collations guide. Type: CollationDefault: None |
| The write concern for the operation. If you don't set this
option, the operation inherits the write concern set for
the collection. To learn more about write concerns, see
Write Concern in the
Server manual. Type: WriteConcern |
| The index to use for the operation. To learn more about
indexes, see Indexes in the Server
manual. This option is available only when connecting to
MongoDB Server versions 4.4 and later. Type: HintDefault: None |
| A map of parameters and values. These parameters can be accessed
as variables in aggregation expressions. This option is available
only when connecting to MongoDB Server versions 5.0 and later. Type: Document |
| An arbitrary Bson value tied to the operation to trace
it through the database profiler, currentOp, and
logs. This option is available only when connecting to
MongoDB Server versions 4.4 and later.Type: BsonDefault: None |
O seguinte código mostra como construir uma instância DeleteOptions e passá-la para o método delete_one() :
let opts: DeleteOptions = DeleteOptions::builder().comment(bson!("hello!")).build(); let res = my_coll.delete_one(filter, opts).await?;
Valor de retorno
Os métodos delete_one() e delete_many() retornam um tipo DeleteResult . Este tipo contém a propriedade deleted_count , que descreve o número de documentos excluídos. Se nenhum documento corresponder ao filtro de query que você especificou, a operação de exclusão não removerá nenhum documento, e o valor de deleted_count será 0.
Exemplo de delete_many()
Este exemplo mostra como chamar o método delete_many() com os seguintes parâmetros:
Um filtro de query que corresponda a documentos onde o valor de
categoryé"garden"Uma instância
DeleteOptionsque utiliza o índice_id_como dica para a operação de exclusão
let filter = doc! { "category": "garden" }; let hint = Hint::Name("_id_".to_string()); let opts: DeleteOptions = DeleteOptions::builder().hint(hint).build(); let res = my_coll.delete_many(filter, opts).await?; println!("Deleted documents: {}", res.deleted_count);
Deleted documents: 2
Observação
Se você utilizar o método delete_one() em vez de delete_many() no exemplo de código anterior, o driver excluirá somente o primeiro dos dois documentos que correspondem ao filtro de query.
Informações adicionais
Para obter exemplos executáveis das operações de exclusão, consulte os seguintes exemplos de uso:
Para saber mais sobre as operações neste guia, consulte a seguinte documentação:
Documentação da API
Para saber mais sobre os métodos e tipos mencionados neste guia, consulte a documentação da API abaixo: