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

Exclua documentos

Nesta página

  • Visão geral
  • Dados de amostra para exemplos
  • Excluir operações
  • Parâmetros
  • Opções
  • Valor de retorno
  • Exemplo de delete_many()
  • Informações adicionais
  • Documentação da API

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

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 }

O driver Rust fornece os métodos delete_one() e delete_many() para executar operações de exclusão.

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.

Você pode modificar o comportamento dos métodos da operação de exclusão encadeando os métodos do construtor de opções com delete_one() e delete_many(). Esses métodos de opção definem DeleteOptions campos de estrutura.

Observação

Opções de configuração

Você pode definir DeleteOptions campos encadeando métodos de construtor de opção diretamente à chamada de método de exclusão. Se você estiver utilizando uma versão anterior do driver, você deverá construir uma instância do DeleteOptions encadeando métodos de construtor de opção ao método builder() . Em seguida, passe a instância de opções como parâmetro para delete_one() ou delete_many().

A tabela a seguir descreve as opções disponíveis em DeleteOptions:

Opção
Descrição
collation
The collation to use when sorting results. To learn more about collations, see the Collations guide.

Type: Collation
Default: None
write_concern
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
hint
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: Hint
Default: None
let_vars
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
comment
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: Bson
Default: None

O código a seguir mostra como definir o campo comment encadeando o método comment() ao método delete_one() :

let res = my_coll
.delete_one(filter)
.comment(bson!("hello!"))
.await?;

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.

Este exemplo executa as seguintes ações:

  • Chama o método delete_many()

  • Passa um filtro de query para delete_many() que corresponde a documentos onde o valor de category é "garden"

  • Encadeia o método hint() para delete_many() para usar 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 res = my_coll
.delete_many(filter)
.hint(hint)
.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.

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:

Para saber mais sobre os métodos e tipos mencionados neste guia, consulte a documentação da API abaixo:

Voltar

Modify