Overview
En esta guía, puede aprender a utilizar el controlador Java Reactive Streams para eliminar documentos de una colección MongoDB realizando operaciones de eliminación.
Una operación de eliminación elimina uno o más documentos de una colección de MongoDB. Puede realizar una operación de eliminación mediante el comando deleteOne() o los métodos deleteMany().
Datos de muestra
Los ejemplos en esta guía utilizan la colección sample_restaurants.restaurants de la Conjuntos de datos de muestra de Atlas.
Para aprender a crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de muestra, consulta el Comenzar tutorial.
Importante
Proyecto Reactor librería
Esta guía utiliza la biblioteca Project Reactor para consumir Publisher las instancias devueltas por los métodos del controlador Java Reactive Streams. Para obtener más información sobre la biblioteca Project Reactor y cómo usarla, consulte la sección "Introducción" en la documentación de Reactor. Para obtener más información sobre cómo usamos los métodos de la biblioteca Project Reactor en esta guía, consulte la guía "Escribir datos en MongoDB".
Operaciones de borrar
Puedes realizar operaciones de eliminación en MongoDB utilizando los siguientes métodos:
deleteOne(), que elimina el primer documento que coincide con los criterios de búsquedadeleteMany(), que elimina todos los documentos que coinciden con los criterios de búsqueda
Cada método de borrado requiere un filtro de query, que especifica los criterios de búsqueda que determinan qué documentos seleccionar para borrar. Para obtener más información sobre los filtros de query, consulta la sección Documentos de filtros de query en el manual de MongoDB Server.
Borrar un documento
Para eliminar un solo documento de una colección de MongoDB, llama al método deleteOne() y pasa tu filtro de query. Luego, pasa el resultado deleteOne() al método estático Mono.from de Mono. Mono es una clase de la biblioteca Project Reactor. En Java Reactive Streams, los métodos del driver devuelven instancias Publisher frías, lo que significa que la operación correspondiente no ocurre a menos que te suscribas a la instancia de Publisher retornada. Esta guía utiliza la biblioteca Project Reactor para consumirlos. Para aprender más sobre Mono, consulta Mono en la documentación de Project Reactor.
El siguiente ejemplo elimina un documento de la colección restaurants que tiene un valor de name de "Ready Penny Inn":
Publisher<DeleteResult> deletePublisher = restaurants.deleteOne( eq("name", "Ready Penny Inn")); Mono.from(deletePublisher).block();
Borra varios documentos
Para eliminar varios documentos de una colección de MongoDB, llama al método deleteMany() y pasa tu filtro de query. Luego, pasa el resultado deleteMany() al método estático Mono.from desde Mono. Mono es una clase de la librería Project Reactor. En Java Reactive Streams, los métodos del controlador devuelven instancias frías de Publisher, lo que significa que la operación correspondiente no se realiza a menos que te suscribas al Publisher devuelto. Esta guía utiliza la biblioteca Proyecto Reactor para consumirlos. Para obtener más información sobre Mono, consulta Mono en la documentación del Project Reactor.
El siguiente ejemplo remueve todos los documentos en la colección restaurants que tengan un valor borough de "Brooklyn":
Publisher<DeleteResult> deletePublisher = restaurants.deleteMany( eq("borough", "Brooklyn")); Mono.from(deletePublisher).block();
Personaliza la operación de borrar
La clase DeleteOptions contiene métodos que modifican el comportamiento de los métodos de eliminación. Para usar la clase DeleteOptions, crea una nueva instancia de la clase y, a continuación, llama a uno o más de sus métodos para modificar la operación de eliminación. Puede encadenar estas llamadas de método juntas. Para modificar el comportamiento de la operación de borrar, pasa la instancia de la clase y las llamadas a métodos encadenadas como segundo argumento al método deleteOne() o deleteMany().
Puedes utilizar los siguientes métodos en la clase DeleteOptions para modificar un método de eliminación. Todos los métodos son opcionales.
Método | Descripción |
|---|---|
| Specifies the kind of language collation to use when sorting
results. For more information, see Collation
in the MongoDB Server manual. |
| Gets or sets the index to scan for documents.
For more information, see the hint statement
in the MongoDB Server manual. |
| Gets or sets the index to scan for documents.
For more information, see the hint statement
in the MongoDB Server manual. |
| A map of parameter names and values. Values must be constant or closed
expressions that don't reference document fields. For more information,
see the let statement in the
MongoDB Server manual. |
| A comment to attach to the operation. For more information, see the delete command
fields guide in the
MongoDB Server manual for more information. |
| A comment to attach to the operation. For more information, see the delete command
fields guide in the
MongoDB Server manual for more information. |
Ejemplo
El siguiente código utiliza el método deleteMany() para eliminar todos los documentos de la colección restaurants con un valor name que incluya la cadena "Mongo". También utiliza el método comment para añadir un comentario a la operación.
Publisher<DeleteResult> deletePublisher = restaurants.deleteMany( regex("name", "Mongo"), new DeleteOptions().comment("Deleting Mongo restaurants")); Mono.from(deletePublisher).block();
Información Adicional
Para ejemplos de código ejecutables de inserción de documentos con el driver Java Reactive Streams, consulte la guía Guardar datos en MongoDB.
Documentación de la API
Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API: