Overview
Para conectarte a una implementación de MongoDB, necesitas dos cosas:
Un URI de conexión, también conocido como una cadena de conexión, que indica al controlador de C a qué implementación de MongoDB conectarse.
A
mongoc_client_testructura, que crea la conexión y realiza operaciones en la implementación de MongoDB.
Esta guía te muestra cómo crear una cadena de conexión y utilizar una estructura mongoc_client_t para conectarte a MongoDB.
URI de conexión
Una cadena de conexión estándar incluye los siguientes componentes:
Componente | Descripción |
|---|---|
| Obligatorio. Un prefijo que identifica esto como una string en el formato de conexión SRV. |
| opcional. Credenciales de autenticación. Si las incluye, el cliente autentica al usuario contra la base de datos especificada en |
| Requerido. El host y el número de puerto opcional donde se ejecuta MongoDB. Si no incluyes el número de puerto, el controlador utiliza el puerto por defecto, |
| Opcional. La base de datos de autenticación que se debe usar si la cadena de conexión incluye las credenciales de autenticación |
| Opcional. Un string de la query que especifica opciones específicas de conexión como pares |
Para obtener más información sobre cómo crear una cadena de conexión, consulta Cadenas de conexión en la documentación del servidor MongoDB.
Ejemplo de Conexión de Atlas
Para conectarse a una implementación de MongoDB en Atlas, primero debe crear un cliente.
Puede pasar una URI de conexión como una cadena a la función mongoc_client_new() para conectarse a una instancia de MongoDB:
// Initialize the C Driver mongoc_init(); // Create a new client and connect to the server mongoc_client_t *client = mongoc_client_new("mongodb+srv://<db_username>:<db_password>@<hostname:port>/?<options>"); mongoc_database_t *database = mongoc_client_get_database(client, "admin"); bson_t *ping = BCON_NEW("ping", BCON_INT32(1)); bson_t reply = BSON_INITIALIZER; bson_error_t error; // Send a ping to confirm a successful connection if (!mongoc_client_command_simple(client, "admin", ping, NULL, &reply, &error)) { fprintf(stderr, "error: %s\n", error.message); goto cleanup; } printf("Pinged your deployment. You successfully connected to MongoDB!\n"); cleanup: bson_destroy(&reply); bson_destroy(ping); mongoc_database_destroy(database); mongoc_client_destroy(client); // Cleanup the C Driver mongoc_cleanup();
Puedes establecer la opción de cliente Stable API version para evitar cambios disruptivos al actualizar a una nueva versión del servidor.
Tip
Para obtener más información sobre la función API estable, consulte la guía API estable.
El siguiente código muestra cómo se puede especificar la cadena de conexión y la opción de cliente de la Stable API al conectarse a una implementación de MongoDB en Atlas y verificar que la conexión sea exitosa:
// Intialize the MongoDB C Driver mongoc_init(); // Create a new client and connect to the server mongoc_client_t *client = mongoc_client_new("mongodb+srv://<db_username>:<db_password>@<hostname:port>/?<options>"); // Set the version of the Stable API on the client mongoc_server_api_t *api = mongoc_server_api_new(MONGOC_SERVER_API_V1); bson_t *ping = BCON_NEW("ping", BCON_INT32(1)); bson_t reply = BSON_INITIALIZER; bson_error_t error; if (!mongoc_client_set_server_api(client, api, &error)) { fprintf(stderr, "error: %s\n", error.message); goto cleanup; } // Send a ping to confirm a successful connection if (!mongoc_client_command_simple(client, "admin", ping, NULL, &reply, &error)) { fprintf(stderr, "error: %s\n", error.message); goto cleanup; } printf("Pinged your deployment. You successfully connected to MongoDB!\n"); cleanup: bson_destroy(&reply); bson_destroy(ping); mongoc_server_api_destroy(api); mongoc_client_destroy(client); // Cleanup the C Driver mongoc_cleanup();
Documentación de la API
Para obtener más información sobre la estructura mongoc_client_t, consulta la documentación de la API.