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 2.9 no subdocumento imdb .
Ao executar o exemplo, você deverá visualizar a saída que relata o número de documentos excluídos na sua chamada para deleteMany().
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 .
import com.mongodb.MongoException import com.mongodb.client.model.Filters import com.mongodb.kotlin.client.coroutine.MongoClient import kotlinx.coroutines.runBlocking data class Movie(val imdb: IMDB){ data class IMDB(val rating: Double) } fun main() = runBlocking { // Replace the uri string with your MongoDB deployment's connection string val uri = "<connection string uri>" val mongoClient = MongoClient.create(uri) val database = mongoClient.getDatabase("sample_mflix") val collection = database.getCollection<Movie>("movies") val query = Filters.lt("${Movie::imdb.name}.${Movie.IMDB::rating.name}", 2.9) try { val result = collection.deleteMany(query) println("Deleted document count: " + result.deletedCount) } catch (e: MongoException) { System.err.println("Unable to delete due to an error: $e") } mongoClient.close() }
Deleted document count: 4
Para obter mais informações sobre as classes e métodos mencionados nesta página, consulte a seguinte documentação da API: