ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Docs 菜单

C++驱动程序入门

MongoDB C++驱动程序是一个C++包,可用于连接到MongoDB并与部署中存储的数据交互。 本指南向您展示如何创建一个应用程序,该应用程序使用C++驾驶员连接到MongoDB Atlas上托管的MongoDB 集群并查询集群中的数据。

提示

MongoDB Atlas 是完全托管的云数据库服务,旨在托管您的 MongoDB 部署。您可以按照本指南中的步骤创建您的免费(无需信用卡)MongoDB Atlas 部署。

按照本指南将示例C++应用程序连接到MongoDB Atlas部署。 如果您希望使用不同的驾驶员或编程语言连接MongoDB ,请参阅我们的官方驱动程序列表。

1

在开始本教程之前,请确保您已在开发环境中安装以下依赖项:

注意

C++17 之前的配置

尽管C++11 17是支持的最低语言版本,但本教程将C++驾驶员配置为使用C++17 Polyfill 配置部分建议的C++ 标准库。如果要安装 C++17 之前版本配置的驾驶员,请将 CMAKE_CXX_STANDARD 配置选项设立为您的C++版本。 然后,驾驶员将自动使用 bsoncxx 库 polyfill 实现来实现所需的C++17 功能。

2

要从 存储库下载最新版本的C++ 驾驶员,请在mongo-cxx-driverGithub shell中的根目录运行以下命令:

curl -OL https://github.com/mongodb/mongo-cxx-driver/releases/download/r4.0.0/mongo-cxx-driver-r4.0.0.tar.gz
tar -xzf mongo-cxx-driver-r4.0.0.tar.gz
cd mongo-cxx-driver-r4.0.0/build
3

选择与操作系统相对应的标签页,然后从mongo-cxx-driver-r4.0.0/build目录运行以下命令:

cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=17

此命令指示 CMake 将mongocxx安装到/usr/local目录中。

'C:\<path>\cmake.exe' .. \
-G "Visual Studio <version> <year>" -A "x64" \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_INSTALL_PREFIX=C:\mongo-cxx-driver \

此命令指示 CMake 将mongocxx安装到C:\mongo-cxx-driver目录中。 替换以下占位符值:

  • <path> :CMake 可执行文件的路径

  • <version> :您的 Visual Studio 版本号

  • <year> :与您的 Visual Studio 版本对应的年份

4

选择与您的操作系统相对应的标签页并运行以下命令以安装驾驶员:

cmake --build .
sudo cmake --build . --target install
cmake --build . --config RelWithDebInfo
cmake --build . --target install --config RelWithDebInfo

完成这些步骤后,您就已在计算机上安装了C++驾驶员程序。

您可以在 MongoDB Atlas 上创建一个免费套餐 MongoDB 部署来存储和管理您的数据。MongoDB Atlas 在云端托管和管理您的 MongoDB 数据库。

1

请按照 Atlas 入门指南中的步骤,设置新的 Atlas 账户并将示例数据加载到新的免费套餐 MongoDB 部署中。

2

创建数据库用户后,请将该用户的用户名和密码保存在一个安全位置,以便在后续步骤中使用。

完成这些步骤后,您就在 Atlas 上有了一个新的免费套餐 MongoDB 部署、数据库用户档案以及加载到数据库中的示例数据。

您可以通过提供连接 URI(也称为连接字符串)来连接到 MongoDB 部署,它指示驱动程序如何连接到 MongoDB 部署以及连接时的行为方式。

连接字符串包含部署的主机名或 IP 地址和端口、身份验证机制、用户档案(如果适用)以及连接选项。

要连接到未托管在Atlas上的实例或部署,请参阅选择连接目标指南。

1

要检索您在上一步中创建的部署的连接字符串,登录您的Atlas帐户并导航到Database部分,然后单击新部署的Connect按钮。

The connect button in the clusters section of the Atlas UI

进入Connect your application 部分,从 选择菜单中选择“C++”,然后从Driver Version选择菜单中选择与您安装的版本最匹配的版本。

选择Password (SCRAM)身份验证机制。

取消选择 Include full driver code example 选项以仅查看连接string 。

2

单击连接string右侧的按钮将其复制到剪贴板,如以下屏幕截图所示:

The copy button next to the connection string in the Atlas UI
3

将此连接字符串粘贴到您首选文本编辑器中的文件中,并将<username><password>占位符替换为数据库用户的用户名和密码。

将此文件保存到安全位置,以便在下一步中使用。

完成这些步骤后,您就拥有了与string Atlas集群对应的连接 。

1

在根目录中,在shell中运行以下命令,为此项目创建一个名为 cpp-quickstart 的目录:

mkdir cpp-quickstart

运行以下命令,在cpp-quickstart目录中创建quickstart.cpp应用程序文件:

cd cpp-quickstart
touch quickstart.cpp
2

将以下代码复制并粘贴到quickstart.cpp文件中,该文件将查询sample_mflix数据库中的movies集合:

#include <cstdint>
#include <iostream>
#include <vector>
#include <bsoncxx/builder/basic/document.hpp>
#include <bsoncxx/json.hpp>
#include <mongocxx/client.hpp>
#include <mongocxx/instance.hpp>
#include <mongocxx/uri.hpp>
using bsoncxx::builder::basic::kvp;
using bsoncxx::builder::basic::make_document;
int main() {
mongocxx::instance instance;
mongocxx::uri uri("<connection string>");
mongocxx::client client(uri);
auto db = client["sample_mflix"];
auto collection = db["movies"];
auto result = collection.find_one(make_document(kvp("title", "The Shawshank Redemption")));
std::cout << bsoncxx::to_json(*result) << std::endl;
}
3

<connection string> 占位符替换为从本指南的“创建连接字符串”步骤中复制的连接字符串。

4

在shell中,运行以下命令以编译并运行此应用程序:

c++ --std=c++17 quickstart.cpp $(pkg-config --cflags --libs libmongocxx) -o ./app.out
./app.out

提示

MacOS 用户在运行上述命令后可能会看到以下错误:

dyld[54430]: Library not loaded: @rpath/libmongocxx._noabi.dylib

要解决此错误,请使用-Wl,-rpath链接器选项来设立@rpath ,如以下代码所示:

c++ --std=c++17 quickstart.cpp -Wl,-rpath,/usr/local/lib/ $(pkg-config --cflags --libs libmongocxx) -o ./app.out
./app.out

命令行输出包含有关检索到的电影文档的详细信息:

{ "_id" : { "$oid" : "573a1399f29313caabceeb20" },
"plot" : "Two imprisoned men bond over a number of years, finding solace
and eventual redemption through acts of common decency.",
...
"title" : "The Shawshank Redemption",
...

如果遇到错误或看不到输出,请确保在quickstart.cpp文件中指定了正确的连接字符串并加载了样本数据。

完成这些步骤后,您有一个正常运行的应用程序,它使用驱动程序连接到 MongoDB 部署、对示例数据运行查询并打印结果。

后续步骤

恭喜您完成快速入门教程!

注意

如果您在该步骤中遇到问题,请在 MongoDB Community 论坛中寻求帮助,或使用本页右侧或右下角的 Rate this page 标签页提交反馈。

在本教程中,您创建了一个C++应用程序,该应用程序连接到MongoDB Atlas上托管的MongoDB 部署,并检索与查询匹配的文档。

通过以下资源了解详情有关C++驾驶员的更多信息: