Visão geral
Para se conectar a um MongoDB deployment, você precisa de duas coisas:
Um URI de conexão , também conhecido como string de conexão , que informa ao driver C a qual sistema do MongoDB se conectar.
Uma estrutura de
mongoc_client_t, que cria a conexão e executa operações no sistema MongoDB .
Este guia mostra como criar uma string de conexão e utilizar uma estrutura mongoc_client_t para conectar ao MongoDB.
URI de conexão
Uma connection string padrão inclui os seguintes componentes:
Componente | Descrição |
|---|---|
| Obrigatório. Um prefixo que identifica isso como uma string no formato de conexão SRV. |
| Opcional. Credenciais de autenticação. Se você incluir estes, o cliente autenticará o usuário no banco de dados especificado no |
| Obrigatório. O host e o número da porta opcional em que o MongoDB está sendo executado. Se você não incluir o número da porta, o driver usará a porta padrão, |
| Opcional. O authentication database de autenticação a ser usado se a connection string incluir as credenciais de autenticação |
| Opcional. Uma string da query que especifica opções específicas de conexão como |
Para obter mais informações sobre a criação de uma connection string, consulte Connection strings na documentação do MongoDB Server .
Exemplo de conexão do Atlas
Para se conectar a uma implementação do MongoDB no Atlas, você deve primeiro criar um cliente.
Você pode passar um URI de conexão como uma string para a função mongoc_client_new() para se conectar a uma instância MongoDB :
// Initialize the C Drivermongoc_init();
// Create a new client and connect to the servermongoc_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 connectionif (!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();Você pode definir a opção de cliente da versão Stable API para evitar alterações significativas ao atualizar para uma nova versão do servidor .
Dica
Para saber mais sobre o recurso de Stable API, consulte o guia da Stable API.
O código a seguir mostra como você pode especificar a cadeia de conexão e a opção de cliente Stable API ao se conectar a uma implementação do MongoDB no Atlas e verificar se a conexão foi bem-sucedida:
// Intialize the MongoDB C Drivermongoc_init();
// Create a new client and connect to the servermongoc_client_t *client = mongoc_client_new("mongodb+srv://<db_username>:<db_password>@<hostname:port>/?<options>");
// Set the version of the Stable API on the clientmongoc_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 connectionif (!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();Documentação da API
Para obter mais informações sobre a estrutura mongoc_client_t, consulte a documentação API.