Menu Docs
Página inicial do Docs
/ / /
Kotlin Coroutine
/ / /

Exclua documentos

Nesta página

  • Visão geral
  • Documentos de amostra
  • Excluir muitos documentos
  • Excluir um documento
  • Localize e exclua um documento

Neste guia, você pode aprender como remover documentos com o driver MongoDB Kotlin.

Você pode remover documentos passando um filtro de query para os métodos deleteOne(), deleteMany() ou findOneAndDelete() .

O método deleteOne() exclui um único documento. Se o filtro de query corresponder a mais de um documento, o método removerá a primeira ocorrência de uma correspondência na collection.

O método deleteMany() exclui todos os documentos que correspondem ao filtro de query.

O método findOneAndDelete() localiza e exclui atomicamente a primeira ocorrência de uma correspondência na collection.

Para especificar um agrupamento ou sugerir um índice, use DeleteOptions como segundo parâmetro para os métodos deleteOne() e deleteMany() .

Para especificar um agrupamento, sugerir um índice, especificar a ordem de classificação ou especificar uma projeção no documento retornado, use FindOneAndDeleteOptions como o segundo parâmetro para o método findOneAndDelete() .

Dica

Ao excluir um único documento, filtre sua query por um índice único, como um _id, para garantir que sua query corresponda ao documento que você deseja excluir.

Os exemplos a seguir são sobre uma loja de tintas que vende oito cores diferentes de tinta. A loja tinha sua venda online anual resultando nos seguintes documentos em sua coleção paint_inventory :

{ "_id": 1, "color": "red", "qty": 5 }
{ "_id": 2, "color": "purple", "qty": 8 }
{ "_id": 3, "color": "blue", "qty": 0 }
{ "_id": 4, "color": "white", "qty": 0 }
{ "_id": 5, "color": "yellow", "qty": 6 }
{ "_id": 6, "color": "pink", "qty": 0 }
{ "_id": 7, "color": "green", "qty": 0 }
{ "_id": 8, "color": "black", "qty": 8 }

Esses dados são modelados com a seguinte classe de dados Kotlin:

data class PaintOrder(
@BsonId val id: Int,
val qty: Int,
val color: String
)

O site da loja de tintas exibe todos os documento na collection paint_inventory . Para reduzir a confusão do cliente, a loja deseja remover as cores que estão esgotadas.

Para remover as cores esgotadas, faça query da collection paint_inventory onde qty é 0 e passe a query para o método deleteMany() :

val filter = Filters.eq("qty", 0)
collection.deleteMany(filter)

O seguinte mostra o documento restante na collection paint_inventory :

{ "_id": 1, "color": "red", "qty": 5 }
{ "_id": 2, "color": "purple", "qty": 8 }
{ "_id": 5, "color": "yellow", "qty": 6 }
{ "_id": 8, "color": "black", "qty": 8 }

A loja está doando a quantidade restante de sua tinta amarela. Isso significa que o qty para o amarelo agora é 0 e precisamos remover o amarelo da collection.

Para remover o amarelo, execute uma consulta na coleção paint_inventory onde color seja "yellow" e utilize essa consulta no método deleteOne():

val filter = Filters.eq("color", "yellow")
collection.deleteOne(filter)

O seguinte mostra o documento restante na collection paint_inventory :

{ "_id": 1, "color": "red", "qty": 5 }
{ "_id": 2, "color": "purple", "qty": 8 }
{ "_id": 8, "color": "black", "qty": 8 }

A loja gostaria de distribuir a quantidade restante de tinta púrpura e remover a cor púrpura da collection paint_inventory .

Para escolher uma cor, faça query da collection paint_inventory onde color é "purple" e passe a query para o método findOneAndDelete() . Ao contrário dos outros métodos de exclusão, o findOneAndDelete() retorna o documento excluído:

val filter = Filters.eq("color", "purple")
val result = collection.findOneAndDelete(filter)
println("The following was deleted: $result")
The following was deleted: PaintOrder(id=2, qty=8, color=purple)

Observação

Se não houver nenhuma correspondência com seu filtro de query, nenhum documento será excluído e o método retornará null.

O seguinte mostra o documento restante na collection paint_inventory :

{ "_id": 1, "color": "red", "qty": 5 }
{ "_id": 8, "color": "black", "qty": 8 }

Para obter mais informações sobre os métodos e classes mencionadas neste guia, consulte os seguintes recursos:

  • deleteOne() Documentação da API

  • deleteMany() Documentação da API

  • findOneAndDelete() Documentação da API

  • Excluir opções Documentação da API

  • FindOneAndDeleteOptions Documentação da API

  • db.coleção.deleteOne() MongoDB Entrada manual do servidor

  • db.coleção.deleteMany() MongoDB Entrada manual do servidor

  • db.coleção.findOneAndDelete() MongoDB Entrada manual do servidor

Voltar

Inserir operações