Docs Menu
Docs Home

Borra varios documentos

Puede eliminar varios documentos de una colección en una sola operación llamando al deleteMany() método en un objeto MongoCollection.

Para especificar qué documentos eliminar, utilice un filtro de consulta que coincida con los documentos que desea eliminar. Si proporciona un documento vacío, MongoDB busca todos los documentos de la colección y los elimina. Aunque puede usar deleteMany() para eliminar todos los documentos de una colección, considere usar el método drop() para un mejor rendimiento.

Tras una eliminación exitosa, este método devuelve una instancia de DeleteResult. Puede recuperar información como el número de documentos eliminados llamando al método getDeletedCount() en la instancia DeleteResult.

Si la operación de eliminación falla, el controlador genera una excepción. Para obtener más información sobre los tipos de excepciones generadas en condiciones específicas, consulte la documentación de la API de deleteMany(), cuyo enlace encontrará al final de esta página.

El siguiente fragmento elimina varios documentos de la colección movies en la base de datos sample_mflix.

El filtro de consulta pasado al método deleteMany() coincide con todos los documentos de películas que contienen un rating de menos de 2.9 en el subdocumento imdb.

Cuando ejecute el ejemplo, debería ver un resultado que informa la cantidad de documentos eliminados en su llamada a deleteMany().

Nota

Este ejemplo se conecta a una instancia de MongoDB mediante una URI de conexión. Para obtener más información sobre cómo conectarse a su instancia de MongoDB, consulte 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, consulte la siguiente documentación de API:

  • deleteMany()

  • Eliminar resultado

  • drop()