MongoDB 3.2 中的兼容性更改

在本页面

以下 3.2 更改可能会影响与旧版 MongoDB 的兼容性。另请参阅MongoDB 3.2 发行说明以获取 3.2 更改的列表。

默认存储引擎更改

从 3.2 开始,MongoDB 使用 WiredTiger 作为默认存储引擎。早期版本使用 MMAPv1 作为默认存储引擎。

对于现有部署,如果未指定--storageEnginestorage.engine设置,则 MongoDB 会自动确定用于在--dbpathstorage.dbPath中创建数据文件的存储引擎。

对于新部署,要使用 MMAPv1,必须明确指定存储引擎设置之一:

mongod --storageEngine mmapv1
storage:
   engine: mmapv1

Index Changes

版本 0 索引

MongoDB 3.2 不允许创建版本 0 索引(即{v: 0})。如果存在版本 0 索引,则 MongoDB 3.2 将输出一条警告日志消息,指定集合和索引。

从 MongoDB 2.0 开始,MongoDB 开始在initial syncmongorestorereIndex操作期间自动升级v: 0索引。

如果存在版本 0 索引,则可以使用上述任何操作以及删除并重新创建索引以升级到v: 1版本。

例如,如果启动时出现警告消息,指示索引index { v: 0, key: { x: 1.0 }, name: "x_1", ns: "test.legacyOrders" }是版本 0 索引,要升级到适当的版本,可以删除并重新创建索引:

use test
db.legacyOrders.dropIndex( "x_1" )

或按键:

use test
db.legacyOrders.dropIndex( { x: 1 } )
db.legacyOrders.createIndex( { x: 1 } )

文本索引版本 3 兼容性

Literals 索引(版本 3)与 MongoDB 的早期版本不兼容。如果数据库中存在Literals 索引(版本 3),则 MongoDB 的早期版本将无法启动。

2dsphere 索引版本 3 兼容性

2 dsphere 索引(版本 3)与 MongoDB 的早期版本不兼容。如果数据库中存在2dsphere索引(版本 3),则 MongoDB 的早期版本将无法启动。

聚合兼容性更改

SpiderMonkey 兼容性更改

MongoDB 3.2 将 JavaScript 引擎从 V8 更改为 SpiderMonkey。这项更改允许使用更多现代的 JavaScript 语言功能,并且对mongo shell 进行了较小的改进和兼容性更改。

有关此更改的更多信息,请参见MongoDB 3.2 中的 JavaScript 更改

副本集配置验证

MongoDB 3.2 提供了对副本集配置设置的更严格的验证:

驱动程序兼容性更改

必须升级驱动程序才能支持findgetMore命令。

通用兼容性更改

Additional Information

另请参见MongoDB 3.2 发行说明

首页