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 driver Scala para remover documentos de uma coleção MongoDB executando 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 deleteOne() ou deleteMany() .

Os exemplos neste guia usam a restaurants collection no sample_restaurants banco de dados dos conjuntos de dados de amostra do Atlas . Para acessar essa collection a partir do seu aplicação Scala, crie um MongoClient que se conecte a um Atlas cluster e atribua os seguintes valores às suas variáveis database e collection:

val database: MongoDatabase = mongoClient.getDatabase("sample_restaurants")
val collection: MongoCollection[Document] = database.getCollection("restaurants")

Para aprender a criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o Guia de Introdução do MongoDB.

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

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

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

Cada método de exclusão requer um query filtro documento, que especifica os critérios de pesquisa que determinam quais documentos selecionar para remoção. Para saber mais sobre filtros de query, consulte o guia Especificar uma query .

O exemplo a seguir usa o método deleteOne() para remover um documento no qual o valor do campo name é "Happy Garden":

val filter = equal("name", "Happy Garden")
val observable: Observable[DeleteResult] = collection.deleteOne(filter)
observable.subscribe(new Observer[DeleteResult] {
override def onNext(result: DeleteResult): Unit = println(s"Deleted document count: ${result.getDeletedCount}")
override def onError(e: Throwable): Unit = println(s"Error: $e")
override def onComplete(): Unit = println("Completed")
})
Deleted document count: 1
Completed

O exemplo a seguir usa o método deleteMany() para remover todos os documentos nos quais o valor do campo borough é "Brooklyn" e o valor do campo name é "Starbucks":

val filter = and(
equal("borough", "Brooklyn"),
equal("name", "Starbucks")
)
val observable: Observable[DeleteResult] = collection.deleteMany(filter)
observable.subscribe(new Observer[DeleteResult] {
override def onNext(result: DeleteResult): Unit = println(s"Deleted document count: ${result.getDeletedCount}")
override def onError(e: Throwable): Unit = println(s"Error: $e")
override def onComplete(): Unit = println("Completed")
})
Deleted document count: 3
Completed

Os métodos deleteOne() e deleteMany() aceitam opcionalmente um parâmetro DeleteOptions , que representa as opções que você pode usar para configurar a operação de exclusão. Se você não especificar nenhuma opção, o driver executará a operação de exclusão com as configurações padrão.

A tabela a seguir descreve os métodos de configuração que você pode usar para configurar uma instância DeleteOptions :

Método
Descrição

collation()

Especifica o tipo de agrupamento de idiomas a ser usado ao classificar os resultados. Para obter mais informações, consulte Agrupamento no manual do MongoDB Server .

hint()

Especifica o índice a ser usado para fazer a correspondência de documentos. Para obter mais informações, consulte a opção dica na delete página de referência do manual do MongoDB Server .

hintString()

Especifica o índice como uma string a ser usada ao fazer a correspondência de documentos. Para obter mais informações, consulte a opção dica na página de referência `` delete`` do manual do MongoDB Server .

let()

Fornece um mapa de nomes e valores de parâmetros para definir variáveis de nível superior para a operação. 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 opção let na delete página de referência do manual do MongoDB Server .

comment()

Define um comentário a ser anexado à operação. Para obter mais informações, consulte a seção Campos de comando na delete página de referência do manual do MongoDB Server .

O código a seguir cria opções e usa o método comment() para adicionar um comentário à operação de exclusão. Em seguida, o exemplo usa o método deleteMany() para excluir todos os documentos na collection restaurants na qual o valor do campo name inclui a string "Red".

val filter = regex("name", "Red")
val opts = DeleteOptions().comment("sample comment")
val observable = collection.deleteMany(filter, opts)
observable.subscribe(new Observer[DeleteResult] {
override def onNext(result: DeleteResult): Unit = println(s"Deleted document count: ${result.getDeletedCount}")
override def onError(e: Throwable): Unit = println(s"Error: $e")
override def onComplete(): Unit = println("Completed")
})
Deleted document count: 124
Completed

Dica

Se você usar o método deleteOne() no exemplo anterior, em vez do método deleteMany() , o driver excluirá apenas o primeiro documento que corresponde ao filtro de query.

Os métodos deleteOne() e deleteMany() retornam uma instância do DeleteResult . Você pode acessar as seguintes informações de uma instância do DeleteResult :

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

  • wasAcknowledged(), que retorna true se o servidor reconhecer o resultado

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

Observação

Se o método wasAcknowledged() retornar false, tentar acessar a propriedade deletedCount resultará em uma exceção InvalidOperation . O driver não pode determinar esses valores se o servidor não reconhecer a operação de gravação.

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