Docs 菜单
Docs 主页
/ / /
C 驱动程序
/

创建 MongoClient

在此页面上

  • Overview
  • 连接 URI
  • Atlas 连接示例
  • API 文档

要连接到 MongoDB 部署,您需要满足两个条件:

  • 连接 URI,也称为连接字符串,它告诉C驾驶员要连接到哪个MongoDB 部署。

  • mongoc_client_t 结构,用于创建与MongoDB 部署的连接并对其执行操作。

本指南向您展示如何创建连接字符串并使用 mongoc_client_t 结构连接到MongoDB。

标准连接string包括以下组件:

组件
说明

mongodb+srv://

必需。在 SRV 连接格式中将其标识为字符串的前缀。

username:password

可选。身份验证凭证。如果包含这些内容,客户端将根据authSource 中指定的数据库对用户进行身份验证。有关authSource 连接选项的更多信息,请参阅《 身份验证机制》指南。

host[:port]

必需。 运行 MongoDB 的主机和可选端口号。 如果不包含端口号,驱动程序将使用默认端口27017

/defaultauthdb

可选。 如果连接string包含 username:password@ 身份验证档案但不包含 authSource 选项,则要使用的身份验证数据库。 如果不包含此组件,客户端将根据admin数据库对用户进行身份验证。

?<options>

可选。 一个查询string ,它将特定于连接的选项指定为 <name>=<value> 对。

有关创建连接string 的更多信息,请参阅 MongoDB Server文档中的 连接字符串 。

要连接到Atlas上的MongoDB 部署,必须首先创建一个客户端。

您可以将连接 URI 以字符串形式传递给 mongoc_client_new() 函数,以连接到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 ();

您可以设立Stable API版本客户端选项,以避免升级到新服务器版本时发生重大更改。

提示

如需了解 Stable API 功能相关详情,请参阅《Stable API 指南》。

以下代码展示了在连接到 Atlas 上的 MongoDB 部署时,如何指定连接字符串和 Stable API 客户端选项,并检查连接是否成功:

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

有关mongoc_client_t 结构的更多信息,请参阅API文档。

后退

连接至 MongoDB