创建 MongoClient
Overview
要连接到 MongoDB 部署,您需要满足两个条件:
连接 URI,也称为连接字符串,它告诉C驾驶员要连接到哪个MongoDB 部署。
mongoc_client_t
结构,用于创建与MongoDB 部署的连接并对其执行操作。
本指南向您展示如何创建连接字符串并使用 mongoc_client_t
结构连接到MongoDB。
连接 URI
标准连接string包括以下组件:
组件 | 说明 |
---|---|
| 必需。在 SRV 连接格式中将其标识为字符串的前缀。 |
| |
| 必需。 运行 MongoDB 的主机和可选端口号。 如果不包含端口号,驱动程序将使用默认端口 |
| 可选。 如果连接string包含 |
| 可选。 一个查询string ,它将特定于连接的选项指定为 |
Atlas 连接示例
要连接到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 ();
API 文档
有关mongoc_client_t
结构的更多信息,请参阅API文档。