旧驱动程序版本与新mongodb服务器的兼容性

旧驱动程序版本与新mongodb服务器的兼容性,mongodb,Mongodb,我们有多个应用程序使用mongodb作为数据库。在我们目前的情况下,我们的应用程序使用mongo驱动程序3.4 在服务器端,目前我们正在运行Mongo 3.4,但我们希望尽可能长时间保持Mongo版本最新 我知道mongo驱动程序提供了如此水平的向后兼容性,但我不知道旧版本的mongo驱动程序是否可以在新版本的mongo服务器上正常工作 mongo驱动程序3.4是否可以在3.6服务器上正常工作 官方支持的驱动程序提供了一种向后兼容性 也就是说,较新的驱动程序应该与较旧的服务器版本兼容,但强烈建议

我们有多个应用程序使用mongodb作为数据库。在我们目前的情况下,我们的应用程序使用mongo驱动程序3.4

在服务器端,目前我们正在运行Mongo 3.4,但我们希望尽可能长时间保持Mongo版本最新

我知道mongo驱动程序提供了如此水平的向后兼容性,但我不知道旧版本的mongo驱动程序是否可以在新版本的mongo服务器上正常工作


mongo驱动程序3.4是否可以在3.6服务器上正常工作

官方支持的驱动程序提供了一种向后兼容性

也就是说,较新的驱动程序应该与较旧的服务器版本兼容,但强烈建议对应用程序进行彻底的测试以进行双重检查

请注意,情况并非总是相反,例如较新的服务器可能与较旧的驱动程序兼容,但不能保证。如果您在服务器升级后申请,尤其如此


文档中的页面应该是最新的,包括驱动程序版本和服务器版本。将来您可能可以参考此页面。

没有“任何”问题吗?网太宽了。“大多数”事情应该是好的,但也有一些陷阱。“捕获”列在发行说明中。实际上,大部分内容更多的是关于“您的代码”,而不是驱动程序本身。因此,如果没有对您的代码进行彻底审核,我认为我们不会给您想要的橡皮图章。端口到新的驱动程序,如果您的代码在某些地方中断,那么这些部分实际上是不兼容的,而不是驱动程序本身。很明显,我不能对旧的驱动程序使用任何新功能。但可以说“MongoDBServer3.6向后兼容X到Y版本的旧mongo驱动程序”。我投票选择的范围太广,因为有太多可能的事情要列出。我要注意的一个大问题是
aggregate()
方法从MongoDB 3.6返回一个默认游标。在此之前,驱动程序代码的“默认”是“单一BSON文档”响应,除非要求使用光标。不显式请求游标或“显式不请求”单个文档响应的代码将失败。例如,这目前破坏了v5之前的
mongoose
版本。边缘案例太多,无法在此列出“橡皮图章”。你需要自己解决这个问题。但我认为这是对我的有效问题的有效答案。如果只列举一个不兼容问题,则意味着3.6与旧的驱动程序版本不完全向后兼容。这就是我想学的。谢谢:)嗯,我没那么说,这正是我的观点。例如,我在旧的驱动程序上编写了代码,这些代码在MongoDB 3.6实例上可以正常工作。但我也知道,我已经审核了该代码,我完全知道它所做的一切都没有违反服务器期望的规则。i、 实际上,我总是调用前一个示例中的聚合游标。这里没有严格的是或否,这完全取决于您实现的代码。