Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home

Borra varios documentos

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.

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:

  • deleteMany()

  • DeleteResult

  • drop()