Overview
En esta guía, puedes aprender cómo remover documentos de tus colecciones de MongoDB utilizando operaciones de borrar.
Esta guía incluye las siguientes secciones:
Datos de muestra para ejemplos presenta los datos de muestra que son utilizados por el ejemplo de operación de borrado
Borrar operaciones describe cómo utilizar el driver para ejecutar operaciones de borrado
Información adicional proporciona enlaces a recursos y documentación de la API para los tipos y métodos mencionados en esta guía
Datos de muestra para ejemplos
El ejemplo de esta guía utiliza los siguientes documentos de muestra. Cada documento representa un artículo en el inventario de una tienda y contiene información sobre su categorización y precio unitario:
{ "item": "trowel", "category": "garden", "unit_price": 9.89 }, { "item": "placemat", "category": "kitchen", "unit_price": 3.19 }, { "item": "watering can", "category": "garden", "unit_price": 11.99 }
Operaciones de borrar
El driver de Rust proporciona los métodos delete_one() y delete_many() para realizar operaciones de borrar.
Parámetros
Los métodos delete_one() y delete_many() reciben un filtro de query como parámetro. Un filtro de query está formado por los campos y valores que constituyen los criterios para que los documentos coincidan.
También puedes pasar opcionalmente un tipo DeleteOptions como parámetro a cualquiera de los dos métodos. Puedes especificar ajustes en una instancia DeleteOptions para configurar la operación de eliminación. Para utilizar los valores por defecto en cada configuración, especifica el valor None como el parámetro de opciones.
Nota
Opciones de instanciación
El driver de Rust implementa el patrón de diseño Builder para la creación de muchos tipos diferentes, incluido DeleteOptions. Puedes usar el método builder() de cada tipo para construir una instancia de opciones encadenando funciones constructoras de opciones una tras otra.
La siguiente tabla describe la configuración que puedes especificar en una instancia de DeleteOptions:
Opción | Descripción |
|---|---|
| La intercalación que se utilizará al ordenar los resultados. Para obtener más información sobre las intercalaciones, consulte la guía Intercalación. |
| El nivel de confirmación de escritura (write concern) para la operación. Si no establece esta opción, la operación hereda el nivel de confirmación de escritura (write concern) establecido para la colección. Para obtener más información sobre el nivel de confirmación de escritura (write concern), consulta Nivel de confirmación de escritura (write concern) en el manual del servidor. |
| El índice que se utilizará para la operación. Para obtener más información sobre los índices, consulte Índices en el manual del servidor. Esta opción solo está disponible cuando se conecta a MongoDB Server versiones 4.4 y posteriores. |
| Un mapa de parámetros y valores. Se puede acceder a estos parámetros como variables en las expresiones de agregación. Esta opción solo está disponible cuando se conecta a las versiones 5.0 y posteriores de MongoDB Server. |
| Un valor |
El siguiente código muestra cómo construir una instancia DeleteOptions y pasarla al método delete_one():
let opts: DeleteOptions = DeleteOptions::builder().comment(bson!("hello!")).build(); let res = my_coll.delete_one(filter, opts).await?;
Valor de retorno
Los métodos delete_one() y delete_many() devuelven un tipo DeleteResult. Este tipo contiene la propiedad deleted_count que describe la cantidad de documentos eliminados. Si ningún documento coincide con el filtro de query que especificaste, la operación de borrado no remueve ningún documento y el valor de deleted_count es 0.
delete_many() Example
Este ejemplo muestra cómo llamar al método delete_many() con los siguientes parámetros:
Un filtro de query que coincide con documentos donde el valor de
categoryes"garden"Una instancia
DeleteOptionsque utiliza el índice_id_como sugerencia para la operación de eliminación
let filter = doc! { "category": "garden" }; let hint = Hint::Name("_id_".to_string()); let opts: DeleteOptions = DeleteOptions::builder().hint(hint).build(); let res = my_coll.delete_many(filter, opts).await?; println!("Deleted documents: {}", res.deleted_count);
Deleted documents: 2
Nota
Si utiliza el método delete_one() en lugar de delete_many() en el ejemplo de código anterior, el driver solo borrará el primero de los dos documentos que coincidan con el filtro de query.
Información Adicional
Para ejemplos ejecutables de las operaciones de eliminación, consulta los siguientes ejemplos de uso:
Para obtener más información sobre las operaciones en esta guía, consulte la siguiente documentación:
intercalación guide
Documentación de la API
Para obtener más información sobre los métodos y tipos mencionados en esta guía, vea la siguiente documentación de la API: