Overview
Para conectarte a una implementación de MongoDB, necesitas dos cosas:
Una URI de conexión, también conocida como cadena de conexión, que le indica al controlador 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 le muestra cómo crear una cadena de conexión y utilizar una estructura mongoc_client_t para conectarse a MongoDB.
URI de conexión
Una cadena de conexión estándar incluye los siguientes componentes:
Componente | Descripción |
|---|---|
| Obligatorio. Un prefijo que lo identifica como una cadena en el formato de conexión SRV. |
| Opcional. Credenciales de autenticación. Si las incluye, el cliente autentica al usuario con 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, consulte 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 mongoc_client_t estructura, consulte la documentación de la API.