C++驱动程序入门
在此页面上
Overview
MongoDB C++驱动程序是一个C++包,可用于连接到MongoDB并与部署中存储的数据交互。 本指南向您展示如何创建一个应用程序,该应用程序使用C++驾驶员连接到MongoDB Atlas上托管的MongoDB 集群并查询集群中的数据。
提示
MongoDB Atlas 是完全托管的云数据库服务,旨在托管您的 MongoDB 部署。您可以按照本指南中的步骤创建您的免费(无需信用卡)MongoDB Atlas 部署。
按照本指南将示例C++应用程序连接到MongoDB Atlas部署。 如果您希望使用不同的驾驶员或编程语言连接MongoDB ,请参阅我们的官方驱动程序列表。
下载并安装
安装依赖项
在开始本教程之前,请确保您已在开发环境中安装以下依赖项:
支持C++17 的编译器,例如 GCC , Clang ,或 Visual Studio
CMake v3 。15或更高版本
注意
C++17 之前的配置
尽管C++11 17是支持的最低语言版本,但本教程将C++驾驶员配置为使用C++17 Polyfill 配置部分建议的C++ 标准库。如果要安装 C++17 之前版本配置的驾驶员,请将 CMAKE_CXX_STANDARD
配置选项设立为您的C++版本。 然后,驾驶员将自动使用 bsoncxx 库 polyfill 实现来实现所需的C++17 功能。
配置驾驶员以进行安装
选择与操作系统相对应的标签页,然后从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 版本对应的年份
完成这些步骤后,您就已在计算机上安装了C++驾驶员程序。
创建 MongoDB 部署
您可以在 MongoDB Atlas 上创建一个免费套餐 MongoDB 部署来存储和管理您的数据。MongoDB Atlas 在云端托管和管理您的 MongoDB 数据库。
在 Atlas 上创建免费 MongoDB 部署
请按照 Atlas 入门指南中的步骤,设置新的 Atlas 账户并将示例数据加载到新的免费套餐 MongoDB 部署中。
完成这些步骤后,您就在 Atlas 上有了一个新的免费套餐 MongoDB 部署、数据库用户档案以及加载到数据库中的示例数据。
创建连接字符串
您可以通过提供连接 URI(也称为连接字符串)来连接到 MongoDB 部署,它指示驱动程序如何连接到 MongoDB 部署以及连接时的行为方式。
连接字符串包含部署的主机名或 IP 地址和端口、身份验证机制、用户档案(如果适用)以及连接选项。
要连接到未托管在Atlas上的实例或部署,请参阅选择连接目标指南。
查找 MongoDB Atlas 连接字符串
要检索您在上一步中创建的部署的连接字符串,登录您的Atlas帐户并导航到Database部分,然后单击新部署的Connect按钮。

进入Connect your application 部分,从 选择菜单中选择“C++”,然后从Driver Version选择菜单中选择与您安装的版本最匹配的版本。
选择Password (SCRAM)身份验证机制。
取消选择 Include full driver code example 选项以仅查看连接string 。
完成这些步骤后,您就拥有了与string Atlas集群对应的连接 。
运行示例查询
创建C++驾驶员应用程序
将以下代码复制并粘贴到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; }
指定连接字符串
将 <connection string>
占位符替换为从本指南的“创建连接字符串”步骤中复制的连接字符串。
运行C++应用程序
在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++驾驶员的更多信息:
在读取数据部分了解如何执行读取操作。
通过“将数据写入MongoDB ”部分了解如何执行写入操作。