Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

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 borrar borra uno o más documentos de una colección de MongoDB. Puedes realizar una operación de eliminación usando las funciones mongoc_collection_delete_one() o mongoc_collection_delete_many().

Los ejemplos en esta guía utilizan la colección restaurants en la base de datos sample_restaurants de los 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 la guía MongoDB Primeros Pasos.

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

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

  • mongoc_collection_delete_many(), que borra todos los documentos que cumplen 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 query: Especifica qué documentos de la colección borrar. Para obtener más información sobre los filtros de query, consulta la sección Documentos de Filtros de Query en el manual del 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.

Utiliza la siguiente sintaxis para borrar 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);

Utiliza la siguiente sintaxis para borrar 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

Especifica el tipo de intercalación de lenguaje que se debe usar al comparar texto. Para obtener más información, consulte Intercalación en el manual de MongoDB Server.
Tipo: bson_t

writeConcern

Establece el nivel de confirmación de escritura (write concern) para la operación.
Por defecto, el nivel de confirmación de escritura (write concern) del namespace.
Tipo: mongoc_write_concern_t

let

Especifica un documento con una lista de valores para mejorar la legibilidad de la operación. Los valores deben ser expresiones constantes o cerradas que no hagan referencia a los campos del documento. Para obtener más información, consulte la instrucción let en el manual de MongoDB Server.
Tipo: bson_t

comment

Un comentario para adjuntar a la operación. Para obtener más información, consulte la guía insertar campos de comando en el manual de MongoDB Server.
Tipo: 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: