文档菜单
文档首页
/ / /
C驱动程序

连接到MongoDB

本页内容

  • 概述
  • 示例应用程序
  • 连接
  • 本地部署
  • Atlas
  • 副本集
  • 传输层安全性(TLS)
  • 启用TLS
  • 禁用主机名验证
  • 网络压缩
  • 压缩算法
  • zlib压缩级别
  • 服务器选择
  • 稳定API

本页面包含代码示例,展示如何通过指定各种设置使用C驱动将您的应用程序连接到MongoDB。

提示

连接选项

要了解更多关于本页面上的连接选项,请参阅每个部分提供的链接。

要使用本页面的连接示例,请将代码示例复制到示例应用程序或您自己的应用程序中。请确保用代码示例中的所有占位符,如<hostname>,替换为您的MongoDB部署的相关值。

您可以使用以下示例应用程序测试本页面上的代码示例。要使用示例应用程序,请执行以下步骤

  1. 确保已安装C驱动。

  2. 复制以下代码并将其粘贴到新的.c文件中。

  3. 复制本页面上的代码示例并将其粘贴到文件指定的行上。

1#include <mongoc/mongoc.h>
2#include <bson/bson.h>
3
4int main(void) {
5
6 mongoc_uri_t* uri = NULL;
7 mongoc_client_t *client = NULL;
8 mongoc_database_t *database = NULL;
9 bson_t *ping = NULL, reply = BSON_INITIALIZER;
10 bson_error_t error;
11
12 mongoc_init();
13
14 // Start example code here
15
16 // End example code here
17
18 database = mongoc_client_get_database (client, "admin");
19
20 ping = BCON_NEW ("ping", BCON_INT32 (1));
21
22 if (!mongoc_client_command_simple (client, "admin", ping, NULL, &reply, &error)) {
23 fprintf (stderr, "%s\n", error.message);
24 goto cleanup;
25 }
26 printf ("Pinged your deployment. You successfully connected to MongoDB!\n");
27
28 cleanup:
29 bson_destroy (&reply);
30 bson_destroy (ping);
31 mongoc_database_destroy (database);
32 mongoc_client_destroy (client);
33 mongoc_uri_destroy (uri);
34 mongoc_cleanup ();
35}

以下部分描述了如何连接到不同的目标,例如MongoDB的本地实例或Atlas上的云托管实例。

以下代码显示了连接到本地MongoDB实例的连接字符串

client = mongoc_client_new ("mongodb://localhost:27017");

要了解更多关于连接到本地部署的信息,请参阅本地部署在“选择连接目标”指南中。

以下代码显示了连接到托管在Atlas上的部署的连接字符串

client = mongoc_client_new ("mongodb+srv://<db_username>:<db_password>@<hostname>/?<options>");

要了解更多关于连接到Atlas的信息,请参阅“选择连接目标”指南中的Atlas

以下代码显示了连接到副本集的连接字符串

client = mongoc_client_new ("mongodb+srv://<replica-set-member>/?replicaSet=<replica_set_name>");

要了解更多关于连接到副本集的信息,请参阅“选择连接目标”指南中的副本集

以下部分描述了如何在启用TLS协议的情况下连接到MongoDB。

要了解有关使用C驱动程序与TLS的更多信息,请参阅配置传输层安全性(TLS)。

以下选项卡演示了如何在连接时启用TLS。

client = mongoc_client_new("mongodb://<db_username>:<db_password>@<hostname>/?tls=true");
uri = mongoc_uri_new ("mongodb://localhost:27017");
mongoc_uri_set_option_as_bool (uri, MONGOC_URI_TLS, true);
client = mongoc_client_new_from_uri (uri);

要了解有关启用TLS的更多信息,请参阅TLS配置指南中的启用TLS

以下选项卡演示了如何在使用TLS连接时禁用主机名验证。

client = mongoc_client_new("mongodb://<db_username>:<db_password>@<hostname>/?tls=true&tlsAllowInvalidHostnames=true");
uri = mongoc_uri_new ("mongodb://localhost:27017");
mongoc_uri_set_option_as_bool (uri, MONGOC_URI_TLS, true);
mongoc_uri_set_option_as_bool (uri, MONGOC_URI_TLSALLOWINVALIDHOSTNAMES, true);
client = mongoc_client_new_from_uri (uri);

要了解有关禁用主机名验证的更多信息,请参阅TLS配置指南中的服务器证书验证

以下部分描述了如何在指定网络压缩算法的情况下连接到MongoDB。

以下标签演示了如何在连接到MongoDB时指定所有可用的压缩器。

client = mongoc_client_new("mongodb://<db_username>:<db_password>@<hostname>/?compressors=snappy,zlib,zstd");
uri = mongoc_uri_new ("mongodb://localhost:27017");
mongoc_uri_set_compressors (uri, "snappy,zlib,zstd");
client = mongoc_client_new_from_uri (uri);

以下标签演示了如何为zlib压缩器指定压缩级别。

client = mongoc_client_new("mongodb://<db_username>:<db_password>@<hostname>/?compressors=zlib&zlibCompressionLevel=<zlib_compression_level");
uri = mongoc_uri_new ("mongodb://localhost:27017");
mongoc_uri_set_option_as_int32 (uri, MONGOC_URI_ZLIBCOMPRESSIONLEVEL, <zlib-compression-level>);
client = mongoc_client_new_from_uri (uri);

以下代码显示了一个指定服务器选择函数的连接字符串。

client = mongoc_client_new("mongodb://<db_username>:<db_password>@<hostname>/?server_selector=<selector_function>");

以下代码展示了如何在 mongoc_client_t 实例中指定稳定的API设置

client = mongoc_client_new ("mongodb+srv://<db_username>:<db_password>@<hostname>/?<options>");
// Set the version of the Stable API on the client
mongoc_server_api_t *api = mongoc_server_api_new(MONGOC_SERVER_API_V1);
mongoc_client_set_server_api(client, api, &error);
// Do database work here
mongoc_server_api_destroy (api);

要了解更多关于稳定API的信息,请参阅 稳定API。

返回

下一步