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

连接至 MongoDB

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

将 占位符替换为您从本指南的 string<connection string>创建连接 中复制的连接字符串。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 社区论坛中寻求帮助,或使用本页面右侧或右下方的 Rate this page(本页内容评级)标签页提交反馈。

后退

创建连接字符串