Excluir vários documentos
Você pode excluir vários documento de uma collection em uma única operação chamando o método deleteMany()
em um objeto MongoCollection
.
Para especificar quais documentos excluir, passe um filtro de query que corresponda aos documentos que você deseja excluir. Se você fornecer um documento vazio, o MongoDB corresponderá a todos os documentos na coleção e os excluirá. Embora você possa usar deleteMany()
para excluir todos os documentos em uma coleção, considere usar o método drop()
para obter melhor desempenho.
Após a exclusão bem-sucedida, este método retorna uma instância de DeleteResult
. Você pode recuperar informações, como o número de documentos excluídos, chamando o método getDeletedCount()
na instância DeleteResult
.
Se a sua operação de exclusão falhar, o driver emitirá uma exceção. Para obter mais informações sobre os tipos de exceções geradas em condições específicas, consulte a documentação da API para deleteMany()
, cujo link está no final desta página.
Exemplo
O trecho a seguir exclui vários documento da collection movies
no reconhecimento de data center sample_mflix
.
O filtro de query passado para o método deleteMany()
corresponde a todos os documentos de filmes que contêm rating
menor que 1,9 no subdocumento imdb
.
Observação
Esse exemplo se conecta a uma instância do MongoDB usando um URI de conexão. Para saber mais sobre como se conectar à sua instância do MongoDB , consulte oguia de conexão .
// Deletes multiple documents from a collection by using the Java driver package usage.examples; import static com.mongodb.client.model.Filters.lt; import org.bson.Document; import org.bson.conversions.Bson; import com.mongodb.MongoException; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.result.DeleteResult; public class DeleteMany { public static void main(String[] args) { // Replace the uri string with your MongoDB deployment's connection string String uri = "<connection string uri>"; try (MongoClient mongoClient = MongoClients.create(uri)) { MongoDatabase database = mongoClient.getDatabase("sample_mflix"); MongoCollection<Document> collection = database.getCollection("movies"); Bson query = lt("imdb.rating", 1.9); try { // Deletes all documents that have an "imdb.rating" value less than 1.9 DeleteResult result = collection.deleteMany(query); // Prints the number of deleted documents System.out.println("Deleted document count: " + result.getDeletedCount()); // Prints a message if any exceptions occur during the operation } catch (MongoException me) { System.err.println("Unable to delete due to an error: " + me); } } } }
Ao executar o exemplo, você deverá visualizar a saída que relata o número de documentos excluídos na sua chamada para deleteMany()
.
Deleted document count: 4
Dica
Legacy API
Se você estiver usando a API herdada, consulte nossa página de perguntas frequentes para saber quais alterações devem ser feitas nesse exemplo de código.
Para obter mais informações sobre as classes e métodos mencionados nesta página, consulte a seguinte documentação da API: