Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Exclua documentos

Neste guia, você pode aprender como usar o PyMongo para remover documentos de uma coleção MongoDB realizando operações de exclusão.

Uma operação de exclusão remove um ou mais documentos de uma collection do MongoDB. Você pode executar uma operação de exclusão utilizando os métodos delete_one() ou delete_many() .

Os exemplos neste guia usam a collection sample_restaurants.restaurants dos conjuntos de dados de amostra do Atlas. Para saber como criar um cluster gratuito do MongoDB Atlas e carregar os conjuntos de dados de amostra, consulte o tutorial Introdução ao PyMongo .

Você pode executar operações de exclusão no MongoDB usando os seguintes métodos:

  • delete_one(), que exclui o primeiro documento que corresponde aos critérios do Atlas Search

  • delete_many(), que exclui todos os documentos que correspondem aos critérios do Atlas Search

Cada método de exclusão requer um documento de filtro de query , que especifica os critérios do Atlas Search que determinam quais documentos selecionar para remoção. Para obter mais informações sobre filtros de query, consulte a seção Documentos de filtro de query no manual do MongoDB Server .

O exemplo seguinte utiliza o método delete_one() para remover um documento na collection restaurants com um valor name de "Ready Penny Inn". Selecione a aba Synchronous ou Asynchronous para ver o código correspondente:

query_filter = { "name": "Ready Penny Inn" }
result = restaurants.delete_one(query_filter)
query_filter = { "name": "Ready Penny Inn" }
result = await restaurants.delete_one(query_filter)

O exemplo seguinte utiliza o método delete_many() para remover todos os documentos na coleção restaurants com um valor borough de "Brooklyn". Selecione a aba Synchronous ou Asynchronous para ver o código correspondente:

query_filter = { "borough": "Brooklyn" }
result = restaurants.delete_many(query_filter)
query_filter = { "borough": "Brooklyn" }
result = await restaurants.delete_many(query_filter)

Os métodos delete_one() e delete_many() aceitam opcionalmente parâmetros adicionais, que representam opções que você pode usar para configurar a operação de exclusão. Se você não especificar nenhuma opção adicional, o driver não personalizará a operação de exclusão.

Propriedade
Descrição

collation

Especifica o tipo de agrupamento de linguagem a ser usado ao classificar os resultados. Consulte Agrupamentos para obter mais informações.

hint

Obtém ou define o índice para procurar documentos. Para obter mais informações, consulte a declaração de dica no manual do MongoDB Server .

session

Uma instância de ClientSession.

let

Um mapa de nomes e valores de parâmetros. Os valores devem ser expressões constantes ou fechadas que não façam referência aos campos do documento. Para obter mais informações, consulte a declaração let no manual do MongoDB Server .

comment

Um comentário a ser anexado à operação. Para obter mais informações, consulte o guia de exclusão de campos de comando no manual do MongoDB Server para obter mais informações.

O código abaixo usa o método delete_many() para excluir todos os documentos na collection restaurants com um valor name que inclui a string "Mongo". Ele também usa a opção comment para adicionar um comentário à operação. Selecione a aba Synchronous ou Asynchronous para ver o código correspondente:

query_filter = { 'name': {'$regex': 'Mongo' }}
result = restaurants.delete_many(query_filter, comment="Deleting Mongo restaurants")
query_filter = { 'name': {'$regex': 'Mongo' }}
result = await restaurants.delete_many(query_filter, comment="Deleting Mongo restaurants")

Dica

Se o exemplo anterior usasse o método delete_one() em vez de delete_many(), o driver excluiria apenas o primeiro documento com um valor name que incluísse "Mongo".

Ao executar uma operação de exclusão, você pode especificar um agrupamento para o driver usar.

Um agrupamento é um conjunto de regras específicas do idioma para comparação de cadeias de caracteres, como para letras maiúsculas e minúsculas e acentos.

Para especificar um agrupamento, crie uma instância da classe Collation ou um dicionário Python. Para obter uma lista de opções a serem passadas para o construtor Collation ou incluídas como chaves no dicionário, consulte Agrupamento no manual do MongoDB Server.

Dica

Importar agrupamento

Para criar uma instância da classe Collation, você deve importá-la do pymongo.collation.

O exemplo a seguir executa a mesma operação de exclusão do exemplo anterior, mas com um agrupamento padrão de fr_CA. Selecione a aba Synchronous ou Asynchronous para ver o código correspondente:

from pymongo.collation import Collation
query_filter = { "borough": "Brooklyn" }
result = restaurants.delete_many(query_filter, collation=Collation(locale='fr_CA'))
from pymongo.collation import Collation
query_filter = { "borough": "Brooklyn" }
result = await restaurants.delete_many(query_filter, collation=Collation(locale='fr_CA'))

Observação

O agrupamento de operações substitui o padrão

Quando você especifica um agrupamento como parte de uma operação, ele substitui o agrupamento padrão para a coleção.

Os métodos delete_one() e delete_many() retornam um tipo DeleteResult . Este tipo contém as seguintes propriedades:

  • deleted_count, que indica o número de documentos excluídos

  • acknowledged, que indica se o servidor reconhece o resultado

  • raw_result, que é o resultado bruto retornado pelo servidor

Observação

Se o atributo acknowledged for False, todos os outros atributos de DeleteResult gerarão uma exceção InvalidOperation quando acessados. O driver não pode determinar esses valores se o servidor não reconhecer a operação de gravação.

Se o filtro de query não corresponder a nenhum documento, o driver não excluirá nenhum documento e deleted_count será 0.

Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API: