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

选择连接目标

在此页面上

  • Overview
  • Atlas
  • 本地部署
  • 副本集
  • 初始化
  • API 文档

在本指南中,您可以了解如何使用连接string和 mongocxx::client 对象连接到不同类型的MongoDB部署。

要连接到MongoDB 上的Atlas 部署,请在连接string 中包含以下元素:

  • Atlas 集群的 URI

  • MongoDB 用户名

  • MongoDB 密码

然后,将连接string传递给 mongocxx::uri 构造函数,并使用 mongocxx::uri对象构造 mongocxx::client对象。

当您连接到Atlas时,我们建议使用 Stable API客户端选项,以避免Atlas升级到新版本的MongoDB Server时发生重大更改。 要学习;了解有关 Stable API功能的更多信息,请参阅 Stable API页面。

以下代码展示了如何使用C++驾驶员连接到Atlas 集群。 该代码还使用server_api_opts选项来指定 Stable API版本。

#include <mongocxx/instance.hpp>
#include <mongocxx/client.hpp>
#include <mongocxx/uri.hpp>
#include <bsoncxx/json.hpp>
#include <mongocxx/exception/exception.hpp>
using bsoncxx::builder::basic::kvp;
using bsoncxx::builder::basic::make_document;
int main()
{
mongocxx::instance instance;
// Replace the placeholder with your Atlas connection string
mongocxx::uri uri("<connection string>");
// Create a mongocxx::client with a mongocxx::options::client object to set the Stable API version
mongocxx::options::client client_options;
mongocxx::options::server_api server_api_options(mongocxx::options::server_api::version::k_version_1);
client_options.server_api_opts(server_api_options);
mongocxx::client client(uri, client_options);
try
{
// Ping the server to verify that the connection works
auto admin = client["admin"];
auto command = make_document(kvp("ping", 1));
auto result = admin.run_command(command.view());
std::cout << bsoncxx::to_json(result) << "\n";
std::cout << "Pinged your deployment. You successfully connected to MongoDB!\n";
}
catch (const mongocxx::exception &e)
{
std::cerr << "An exception occurred: " << e.what() << "\n";
return EXIT_FAILURE;
}
}

提示

按照 Atlas驱动程序连接指南检索连接string 。

要连接到本地 MongoDB 部署,请使用localhost作为主机名。 默认情况下, mongod进程在端口27017上运行,但您可以根据部署进行自定义。

以下代码展示了如何使用C++驾驶员连接到本地MongoDB 部署:

#include <mongocxx/instance.hpp>
#include <mongocxx/uri.hpp>
#include <mongocxx/client.hpp>
int main()
{
mongocxx::instance instance;
mongocxx::uri uri("mongodb://localhost:27017");
mongocxx::client client(uri);
}

要连接到副本集,请在连接IP 中指定副本集集节点的主机名(或string 地址)和端口号。

如果您无法提供副本集主机的完整列表,则可以指定副本集集中的一个或多个主机,并指示C++驾驶员执行自动发现以查找其他主机。 要指示驾驶员执行自动发现,请执行以下操作之一:

  • 将副本集的名称指定为 replicaSet 参数的值。

  • false 指定为 directConnection 参数的值。

  • 在副本集中指定多个主机。

在以下示例中,驱动程序使用样本连接 URI 连接到 MongoDB 副本集 sampleRS,该副本集在三个不同主机(包括 host1)的端口 27017 上运行:

#include <mongocxx/instance.hpp>
#include <mongocxx/client.hpp>
#include <mongocxx/uri.hpp>
int main()
{
mongocxx::instance instance;
mongocxx::uri uri("mongodb://host1:27017/?replicaSet=sampleRS");
mongocxx::client client(uri);
}

要初始化副本集,必须直接连接到单个成员。 为此,请在连接string中将 directConnection 连接选项设立为 true。 以下代码示例展示了如何设立此连接选项:

#include <mongocxx/instance.hpp>
#include <mongocxx/client.hpp>
#include <mongocxx/uri.hpp>
int main()
{
mongocxx::instance instance;
mongocxx::uri uri("mongodb://<hostname>:<port>/?directConnection=true");
mongocxx::client client(uri);
}

要学习;了解有关此页面上使用的类型的更多信息,请参阅以下API文档:

后退

创建MongoDB客户端