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 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: