Docs Menu
Docs Home

Escribe datos en MongoDB

En esta página, puede ver ejemplos de código copiables que muestran funciones comunes que puede usar para escribir datos en MongoDB con el controlador C.

Tip

Para obtener más información sobre cualquiera de las funciones que se muestran en esta página, consulte el enlace proporcionado en cada sección.

Para utilizar un ejemplo de esta página, copie el ejemplo de código en el Aplicación de ejemplo o su propia aplicación. Asegúrese de reemplazar todos los marcadores de posición en los ejemplos de código, como <connection string URI>, con los valores relevantes para su implementación de MongoDB.

Puede utilizar la siguiente aplicación de muestra para probar los ejemplos de código en esta página. Para usar la aplicación de muestra, siga los siguientes pasos:

  1. Asegúrate de tener instalado el controlador C.

  2. Copia el siguiente código y pégalo en un nuevo archivo .c.

  3. Copia un ejemplo de código de esta página y pégalo en las líneas especificadas del archivo.

1#include <bson/bson.h>
2#include <mongoc/mongoc.h>
3#include <stdio.h>
4
5int
6main (void)
7{
8 mongoc_client_t *client;
9 mongoc_collection_t *collection;
10 char *str;
11 bson_error_t error;
12
13 mongoc_init ();
14
15 client =
16 mongoc_client_new ("<connection string URI>");
17 collection =
18 mongoc_client_get_collection (client, "<database name>", "collection name");
19
20 // Start example code here
21
22 // End example code here
23
24 mongoc_collection_destroy (collection);
25 mongoc_client_destroy (client);
26 mongoc_cleanup ();
27
28 return EXIT_SUCCESS;
29}

El siguiente código muestra cómo insertar un solo documento en una colección:

bson_t *document = BCON_NEW ("<field name>", BCON_UTF8 ("<value>"));
bson_error_t error;
if (!mongoc_collection_insert_one (
collection, document, NULL, NULL, &error)) {
fprintf (stderr, "Insert one operation failed: %s\n", error.message);
}
bson_destroy (document);

To learn more about the mongoc_collection_insert_one() function, see the Guía deinserción de documentos.

El siguiente código muestra cómo insertar varios documentos en una colección:

size_t num_docs = 2;
bson_t *docs[num_docs];
docs[0] = BCON_NEW ("<field name>", BCON_UTF8 ("<value>"));
docs[1] = BCON_NEW ("<field name>", BCON_UTF8 ("<value>"));
bson_error_t error;
if (!mongoc_collection_insert_many (collection, (const bson_t **) docs, num_docs, NULL, NULL, &error)) {
fprintf (stderr, "Insert many operation failed: %s\n", error.message);
}
bson_destroy (docs[0]);
bson_destroy (docs[1]);

Para obtener más información sobre la mongoc_collection_insert_many() función, consulte la guía Insertar documentos.

El siguiente código muestra cómo actualizar un solo documento en una colección creando o editando un campo:

bson_t *query = BCON_NEW ("<field to match>", BCON_UTF8 ("<value to match>"));
bson_t *update = BCON_NEW ("$set", "{", "<field name>", BCON_UTF8 ("<value>"), "}");
bson_error_t error;
if (!mongoc_collection_update_one (collection, query, update, NULL, NULL, &error)) {
fprintf (stderr, "Update one operation failed: %s\n", error.message);
}
bson_destroy (query);
bson_destroy (update);

Para obtener más información sobre la mongoc_collection_update_one() función, consulte la guía Actualizar documentos.

El siguiente código muestra cómo actualizar varios documentos en una colección creando o editando un campo:

bson_t *query = BCON_NEW ("<field to match>", BCON_UTF8 ("<value to match>"));
bson_t *update = BCON_NEW ("$set", "{", "<field name>", BCON_UTF8 ("<value>"), "}");
bson_error_t error;
if (!mongoc_collection_update_many (collection, query, update, NULL, NULL, &error)) {
fprintf (stderr, "Update many operation failed: %s\n", error.message);
}
bson_destroy (query);
bson_destroy (update);

Para obtener más información sobre la mongoc_collection_update_many() función, consulte la guía Actualizar documentos.

El siguiente código muestra cómo eliminar un solo documento en una colección:

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);

Para obtener más información sobre la mongoc_collection_delete_one() función, consulte la guía Eliminar documentos.

El siguiente código muestra cómo eliminar varios documentos en una colección:

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);

Para obtener más información sobre la mongoc_collection_delete_many() función, consulte la guía Eliminar documentos.

El siguiente código muestra cómo realizar múltiples operaciones de guardar en una sola operación masiva:

bson_error_t error;
mongoc_bulk_operation_t *bulk =
mongoc_collection_create_bulk_operation_with_opts (collection, NULL);
bson_t *insert_doc = BCON_NEW (
"<field name>", BCON_UTF8 ("<value>"),
"<field name>", BCON_UTF8 ("<value>"),
"<field name>", BCON_UTF8 ("<value>"),
"<field name>", BCON_UTF8 ("<value>")
);
mongoc_bulk_operation_insert(bulk, insert_doc);
bson_destroy (insert_doc);
bson_t *query = BCON_NEW ("<field to match>", BCON_UTF8 ("<value to match>"));
bson_t *update = BCON_NEW ("$set", "{", "<field name>", BCON_UTF8 ("<value>"), "}");
mongoc_bulk_operation_update_one(bulk, query, update, false);
bson_destroy(query);
bson_destroy(update);
bool result = mongoc_bulk_operation_execute(bulk, NULL, &error);
if (!result) {
fprintf (stderr, "Bulk operation error: %s\n", error.message);
}
mongoc_bulk_operation_destroy (bulk);

Para obtener más información sobre la mongoc_collection_bulk_operation_execute() función, consulte la guía Operaciones de escritura masiva.

En esta página