Docs Menu
Docs Home
/ /

Crea un MongoClient

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_t estructura, 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.

Una cadena de conexión estándar incluye los siguientes componentes:

Componente
Descripción

mongodb+srv://

Obligatorio. Un prefijo que lo identifica como una cadena en el formato de conexión SRV.

username:password

Opcional. Credenciales de autenticación. Si las incluye, el cliente autentica al usuario con la base de datos especificada en authSource. Para obtener más información sobre la opción de conexión authSource, consulte Guía demecanismos de autenticación.

host[:port]

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, 27017.

/defaultauthdb

Opcional. La base de datos de autenticación que se debe usar si la cadena de conexión incluye las credenciales de autenticación username:password@ pero no la opción authSource. Si no incluyes este componente, el cliente autentica al usuario contra la base de datos admin.

?<options>

Opcional. Un string de la query que especifica opciones específicas de conexión como pares <name>=<value>.

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.

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

Para obtener más información sobre la mongoc_client_t estructura, consulte la documentación de la API.

Volver

Conéctese a MongoDB

En esta página