【问题标题】:MongoDB C++ legacy-1.1.x compatibility with MongoDB 3.4MongoDB C++ legacy-1.1.x 与 MongoDB 3.4 的兼容性
【发布时间】:2017-10-19 06:55:23
【问题描述】:

我是一个使用 MongoDB 的 C++ 项目的开发人员。特别是,我们使用带有驱动程序 legacy-1.1.x 的 MongoDB 3.2。我们有一个包含大约 2000 个测试(在单元测试和黑盒测试之间)的测试回归套件,其中大多数会触发与 MongoDB 服务器的交互。

我们已测试从 3.2 更改 MongoDB 服务器。到 3.4。我们已经用 3.4 运行了测试套件,所有测试都没有任何问题。

这似乎是个好消息。但是,查看 MongoDB C++ driver documentation 我发现 legacy-1.1.x 驱动程序与 MongoDB 3.4 不兼容。

所以我想知道,为什么我的代码(所有约 2000 次回归测试)正常工作?也许文档中的兼容性矩阵是推荐的设置,但不是强制性的?或者,在 MongoDB 3.4 中使用我的代码未使用的一些新功能时可能会出现不兼容性(考虑到它的设计考虑了 MongoDB 3.2 的功能集)?

【问题讨论】:

  • 有一个general matrix of all drivers,当然还有一个specific C++ section。确实不应该有任何重大更改,并且引入了更多“功能”(Decimal128,排序规则感知方法)。它“不兼容”的具体原因是因为驱动程序不支持数据库中可能存在的这些“新功能”(特别是 Decimal128 BSON )并且会破坏它。

标签: c++ mongodb


【解决方案1】:

该矩阵应读作“推荐”。正如您所建议的,MongoDB 3.4 的某些功能无法通过旧版驱动程序访问,并且没有计划添加支持。但是,如果您的测试不需要任何 3.4 功能,驱动程序将继续按设计工作,我不会感到惊讶。

但是,我不能强烈建议您尽快升级到新的 mongocxx 驱动程序。旧版驱动程序仅处于关键的错误修复中,并且会尽快停产。

新驱动程序提供了更好的编程模型,符合现代 MongoDB 驱动程序设计和原则,并且将持续更新以表达对新数据库功能的支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-31
    • 2023-03-08
    • 2019-03-10
    • 2017-06-08
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多