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
/ /

Delete Documents

En esta guía, puedes aprender cómo usar el driver de C para remover documentos de una colección de MongoDB realizando operaciones de borrar.

Una operación de borrado remueve uno o más documentos de una colección de MongoDB. Puedes realizar una operación de borrar usando el mongoc_collection_delete_one() o mongoc_collection_delete_many() funciones.

Los ejemplos de esta guía usan la colección restaurants en la base de datos sample_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 ejemplo, consulta la guía Introducción a MongoDB.

Puede realizar operaciones de eliminación utilizando las siguientes funciones:

  • mongoc_collection_delete_one(), que elimina el primer documento que coincide con los criterios de búsqueda

  • mongoc_collection_delete_many(), que elimina todos los documentos que coinciden con los criterios de búsqueda

Cada función de borrado acepta los siguientes parámetros:

  • Colección: Especifica la colección a modificar.

  • Documento de filtro de consulta: Especifica qué documentos de colección se eliminarán. Para obtener más información sobre los filtros de consulta, consulte la sección "Documentos de filtro de consulta" en el manual de MongoDB Server.

  • Resultados ubicación: Especifica un puntero a un almacenamiento sobrescribible que contendrá los resultados de la operación, o NULL.

  • Ubicación del error: especifica una ubicación para un valor de error o NULL.

Utilice la siguiente sintaxis para eliminar un documento:

bson_t *filter = BCON_NEW("<field name>", BCON_UTF8("<value>"));
bson_error_t error;
if (!mongoc_collection_delete_one(collection, filter, NULL, NULL, &error)) {
fprintf(stderr, "Delete error: %s\n", error.message);
}
bson_destroy(filter);

El siguiente ejemplo utiliza la función mongoc_collection_delete_one() para remover un documento en la colección restaurants que tiene un valor de name de "Ready Penny Inn":

bson_t *filter = BCON_NEW("name", BCON_UTF8("Ready Penny Inn"));
bson_error_t error;
if (!mongoc_collection_delete_one(collection, filter, NULL, NULL, &error)) {
printf("Delete error: %s\n", error.message);
}
bson_destroy(filter);

Utilice la siguiente sintaxis para eliminar varios documentos:

bson_t *filter = BCON_NEW("<field name>", BCON_UTF8("<value>"));
bson_error_t error;
if (!mongoc_collection_delete_many(collection, filter, NULL, NULL, &error)) {
fprintf(stderr, "Delete error: %s\n", error.message);
}
bson_destroy(filter);

El siguiente ejemplo usa la función mongoc_collection_delete_many() para remover todos los documentos en la colección restaurants que tienen un valor borough de "Brooklyn":

bson_t *filter = BCON_NEW("borough", BCON_UTF8("Brooklyn"));
bson_error_t error;
if (!mongoc_collection_delete_many(collection, filter, NULL, NULL, &error)) {
printf("Delete error: %s\n", error.message);
}
bson_destroy(filter);

Puedes modificar el comportamiento de las funciones mongoc_collection_delete_one() y mongoc_collection_delete_many() pasando un documento BSON que especifique los valores de las opciones. La siguiente tabla describe algunas opciones que se pueden configurar en el documento:

Campo
Descripción

collation

Specifies the kind of language collation to use when comparing text. For more information, see Collation in the MongoDB Server manual.
Type: bson_t

writeConcern

Sets the write concern for the operation.
Defaults to the write concern of the namespace.
Type: mongoc_write_concern_t

let

Specifies a document with a list of values to improve operation readability. 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.
Type: bson_t

comment

A comment to attach to the operation. For more information, see the insert command fields guide in the MongoDB Server manual.
Type: bson_value_t

El siguiente ejemplo llama a la función mongoc_collection_delete_many() para borrar todos los documentos en la colección restaurants que tienen un valor name que contiene la cadena "Mongo". También establece la opción comment para agregar un comentario a la operación:

bson_t *filter = BCON_NEW("name", "{", "$regex", BCON_UTF8("Mongo"), "}");
bson_error_t error;
bson_t opts;
bson_init(&opts);
BCON_APPEND(&opts, "comment", BCON_UTF8("Deleting Mongo restaurants"));
if (!mongoc_collection_delete_many(collection, filter, &opts, NULL, &error)) {
printf("Delete error: %s\n", error.message);
}
bson_destroy(filter);
bson_destroy(&opts);

Tip

Si utilizas la función mongoc_collection_delete_one() en lugar de mongoc_collection_delete_many() en el ejemplo anterior, el controlador elimina solo el primer documento que tiene un valor name que contiene "Mongo".

Para aprender más sobre alguna de las funciones tratadas en esta guía, consulta la siguiente documentación de la API:

Volver

Update

En esta página