Página inicial do Docs → Desenvolver aplicações → MongoDB Drivers → Driver de sincronização Java
Exclua documentos
Nesta página
Visão geral
Neste guia, você pode aprender como remover documentos com o driver Java do MongoDB.
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()
.
Documentos de amostra
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 }
Excluir muitos documentos
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()
:
Bson 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 }
Excluir um documento
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()
:
Bson 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 }
Localize e exclua um documento
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()
:
Bson filter = Filters.eq("color", "purple"); System.out.println(collection.findOneAndDelete(filter).toJson());
Ao contrário dos outros métodos de exclusão, o findOneAndDelete()
retorna o documento excluído:
{ "_id": 2, "color": "purple", "qty": 8 }
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
FindOneAndDeleteOptions Documentação da API
db.coleção.deleteOne() Entrada manual do servidor
db.collection.deleteMany() Entrada manual do servidor
db.collection.findOneAndDelete() Entrada manual do servidor