Criar um MongoClient
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
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 |
---|---|
mongodb+srv:// | Obrigatório. Um prefixo que identifica isso como uma string no formato de conexão SRV. |
username:password | Opcional. Credenciais de autenticação. Se você incluir estes, o cliente autenticará o usuário no banco de banco de dados especificado authSource no. Para obter mais informações sobre a authSource opção de conexão, consulte o guia Mecanismos de autenticação . |
host[:port] | 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, 27017 . |
/defaultauthdb | Opcional. O authentication database de autenticação a ser usado se a connection string incluir as credenciais de autenticação username:password@ , mas não a opção authSource . Se você não incluir este componente, o cliente autenticará o usuário no banco de dados do admin . |
?<options> | Opcional. Uma string da query que especifica opções específicas de conexão como <name>=<value> pares. |
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 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 ();
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 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 ();
Documentação da API
Para obter mais informações sobre a mongoc_client_t
estrutura, consulte a documentação API.