公告MongoDB 8.0 隆重推出,这是有史以来最快的MongoDB!了解详情 >
公告Voyage AI 与 MongoDB 携手合作,致力于在 Atlas 上提供更准确和更值得信赖的 AI 应用。了解更多 >

C++ 和 MongoDB

C++ 是一种强大、高性能的编程语言,以其效率、多功能性和广泛使用而备受赞誉。鉴于 MongoDB 和 C++ 都很受欢迎,它们能够很好地协同工作也就不足为奇了。无论您是在本地或内部部署的 MongoDB 安装上进行开发,还是使用 MongoDB Atlas 转向云优先,MongoDB C++ Driver 都可以轻松地将 MongoDB 集成到您的开发过程中。

您是否正在努力找出该与您正在开发的 C++ 应用程序搭配使用的数据库?深入阅读本指南,探索 C++ 与 MongoDB 的无缝集成,利用 C++ 的优势以及 MongoDB 数据库系统的灵活性和可扩展性。

目录

为什么要将 MongoDB 与 C++ 结合使用

MongoDB 稳坐最流行 NoSQL 数据库技术的榜首。它是一个文档数据库,用于构建具有高可用性和可扩展性的应用程序。MongoDB 成立于 2007 年,在开发者社区中拥有一批世界各地的追随者。MongoDB 始终致力于为开发者提供出色的用户体验,这加上其所有其他功能,也使 MongoDB 成为全球开发者的挚爱。C++ 开发者可从使用 MongoDB 中获益匪浅,原因如下:

  • 灵活的模式:与 SQL 不同,MongoDB 的文档模型允许集合中的不同文档具有不同的结构化数据。这种灵活性与 C++ 的动态特性非常一致,可以更改数据布局而无需修改整个数据模型,从而提高工作效率。
  • 性能: MongoDB 内置了对分片和复制的支持,提供了高可用性、横向扩展和地理分布。因此,它是需要稳健性和高性能的 C++ 应用程序的理想选择。
  • 可扩展性:MongoDB 专为轻松横向扩展而设计,其中涉及为您的应用程序添加更多服务器。相比之下,SQL 数据库通常依赖于垂直扩展(更强大的硬件),这可能会带来限制。
  • 易于使用:MongoDB 为 CRUD 操作提供了一个非常简单直观的 API,可以与 MongoDB C++ 驱动程序轻松使用。MongoDB 中使用的类似 JSON 的文档直接映射到 C++ 中的数据类型,提供了一个自然的数据操作环境。

如果您在构建新内容并需要数据库,请考虑从一开始就使用MongoDB Atlas。Atlas 为您提供完全托管的云原生数据库服务,附带多种功能,包括 全文搜索向量搜索图表合作伙伴集成,以及更多功能。

有趣的事实:MongoDB 数据库是用 C++ 语言编写的!

MongoDB 和 C++ 入门

要开始将 MongoDB 与您的 C++ 应用程序一起使用,您需要安装 MongoDB C++ 驱动程序,该驱动程序充当 MongoDB 与您的 C++ 应用程序之间的接口。该驱动程序也称为 mongocxxmongo-cxx-driver

有多个选项可用于安装 MongoDB C++ 驱动程序:

请参阅安装页面上的详细文档,该文档涵盖了上述所有方法。我们还提供了在 Windows 上从源代码构建和安装的分步指南。我们还提供了一个 10 分钟的视频教程以帮助您入门。

您可以使用所选的 IDE(例如 Visual Studio、Visual Studio Code 或 CLion)设立 MongoDB C++ 驱动程序。C++ 驱动程序安装还包括一个CMake 配置文件包,因此您可以使用 CMake 的find_package命令导入 C++ 驱动程序的 CMake 目标并链接到 C++ 驱动程序(作为共享库)。

创建您的第一个 Atlas 集群

一旦C++驱动程序全部设立好,您还需要一个数据库。

您可以创建帐户并按照本指南在 MongoDB Atlas 上创建免费套餐集群。它还将展示如何插入样本数据。

连接到您的 Atlas 集群

完成上一部分后,您应该有一个在 Atlas 中部署的新 MongoDB 集群、一个新的数据库用户和密码,以及已加载到集群中的一些样本数据集。

现在,可以使用驱动程序连接到数据库了。为了建立数据库连接,您的驱动程序需要有关如何连接的说明。这些指令称为连接字符串。您可以获取在上一步中创建的集群和用户名的连接字符串,方法是进入 Atlas 帐户,导航到数据库部分,然后单击“连接”。

将会出现一个弹出窗口,提示您选择驱动程序和版本。填充这两个下拉菜单后,可以使用生成的数据库连接字符串(以mongdb+srv://开头)连接到您的集群。请注意,您需要将内容替换为您自己的用户名和密码!

您可以使用此连接字符串从应用程序运行对 MongoDB 集群的查询。您可以在 这里 找到关于获取连接字符串的更深入说明。下面分享了连接到 MongoDB Atlas 集群并执行网络探测(ping)命令的示例代码:

 

C++

 

文档和收集

与 SQL 数据库不同,MongoDB 将信息存储在 文档集合 中。

文档(Document)

MongoDB 将数据记录存储为 BSON 文档 。BSON 是 JSON 文档的二进制表示形式,尽管它包含的数据类型比 JSON 更多。文档由字段-值对组成,具有以下结构:

 

Python

 

与字段关联的值可以是任何BSON 数据类型,包括其他文档、数组,甚至文档数组。字段名称本身是字符串。

在关系数据库中,文档比标准行灵活得多,因为它们为您提供了动态模式而不是强制模式(尽管您可以根据需要使用 MongoDB 执行模式验证)。

集合

MongoDB 将文档存储在收集中。收集就像关系数据库中的表。有关如何创建集合的更多详细信息,以及有关集合的其他信息,可以在此处查看文档

增删改查操作

CRUD(创建、读取、更新和删除)操作是您可能想对数据库执行的四种基本操作。就 MongoDB 而言,您可以使用 CRUD 操作插入文档、为匹配文档编写查询、更新文档和删除文档。您可以使用MQL(MongoDB 查询语言)来实现此操作。与 SQL 语句不同,MQL 使用与文档相同的语法,因此直观易用,即使是高级查询也是如此。

完整的 C++ 数据库教程以及使用 C++ 驱动程序的四个 CRUD 操作的示例代码可以在 MongoDB 开发者中心文档 中找到。

获取帮助

MongoDB 的最大优势在于它有一个充满活力的社区,其中包括具备各种 C++ 驱动程序经验的用户。获得一般问题支持的最佳方法是使用 MongoDB 社区论坛

如果您遇到了意外错误,您认为在 C++ 驱动程序中发现了错误,或者您有功能请求,请在 CXX 项目中打开一个 JIRA 工单。

在 JIRA 中为 C++ 驱动程序和核心服务器创建的工单默认情况下是公开的。

您还可以在 MongoDB 反馈 上提出功能请求,并通过对想法点赞来获取支持。

资源

常见问题解答

开始使用 MongoDB Atlas

免费试用