Se pueden borrar varios documentos de una colección en una sola operación llamando al deleteMany() método en un objeto MongoCollection.
Para especificar qué documentos borrar, pasa un filtro de query que coincida con los documentos que deseas borrar. Si proporcionas un documento vacío, MongoDB empareja todos los documentos en la colección y los elimina. Si bien puedes utilizar deleteMany() para borrar todos los documentos de una colección, considera utilizar el método drop() para obtener un mejor rendimiento.
Tras la eliminación exitosa, este método devuelve una instancia de DeleteResult. Puedes recuperar información como el número de documentos eliminados llamando al método getDeletedCount() en la instancia DeleteResult.
Si tu operación de eliminación falla, el controlador genera una excepción. Para obtener más información sobre los tipos de excepciones generadas bajo condiciones específicas, consultar la documentación de la API para deleteMany(), enlazada en la parte inferior de esta página.
Ejemplo
El siguiente snippet elimina múltiples documentos de la colección movies en la base de datos sample_mflix.
El filtro de query pasado al método deleteMany() coincide con todos los documentos de películas que contienen un rating menor que 2.9 en el subdocumento imdb.
Cuando ejecutes el ejemplo, deberías ver una salida que informe el número de documentos eliminados en su llamada a deleteMany().
Nota
Este ejemplo se conecta a una instancia de MongoDB utilizando un URI de conexión. Para obtener más información sobre cómo conectarse a tu instancia de MongoDB, consulta el guía de conexión.
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 obtener información adicional sobre las clases y métodos mencionados en esta página, revisa la siguiente documentación API: