数据库版本 | 兼容性变更说明 |
|---|
MongoDB 6.0 | 如果聚合管道里使用的内存超过了100 MB,默认会写入数据到磁盘的临时文件中。若要更改此默认行为,请修改全局参数allowDiskUseByDefault为false。 6.0之前的版本需要显式指定{ allowDiskUse: true }参数,才能写入数据到磁盘的临时文件中。 通过dropIndexes删除索引时,如果使用通配符*,不会删除_id索引,也不会删除分片键索引,更多信息,请参见dropIndexes。 不再支持Mongo Shell工具,请使用mongosh工具替代。 不再支持$explain、$hint、$max和$maxTimeMS等操作符。 当TTL索引expireAfterSeconds被设置为NaN时,会被认为设置为0,可能会立马淘汰过期文档。 不再支持SCRAM-SHA-1认证方法。 不再支持reIndex命令以及相对应的reIndex()方法。
MongoDB 6.0的更多信息,请参见Compatibility Changes in MongoDB 6.0。 |
MongoDB 5.0 | Secondary节点(从节点)的Read Concern级别从available变更为local,更多信息,请参见Read Concern。 Write Concern的默认值由1变更为majority。
不再支持db.collection.ensureIndex(),请使用db.collection.createIndex()替代。 对saslStart以及saslContinue命令的参数进行严格校验,无法兼容mgo。saslContinue只需要conversationId和payload参数,而mgo提供了一个多余的参数 mechanism,更多信息,请参见mgo。 删除geoSearch。
MongoDB 5.0的更多信息,请参见Compatibility Changes in MongoDB 5.0。 |
MongoDB 4.4 | compact不再支持force选项,更多信息,请参见compact。
不再支持geoSearch,更多信息,请参见geoSearch。 支持在主备数据库上同时创建索引,以减少索引创建带来的主备延迟。即使在索引创建过程中,也可以保证备库访问到最新的数据。
MongoDB 4.4的更多信息,请参见Compatibility Changes in MongoDB 4.4。 |
MongoDB 4.2 | MongoDB 4.2的更多信息,请参见Compatibility Changes in MongoDB 4.2。 |
MongoDB 4.0 | MongoDB 4.0的更多信息,请参见Compatibility Changes in MongoDB 4.0。 |
MongoDB 3.6 | 在MongoDB 3.4和MongoDB 4.0之间,开源MongoDB还支持MongoDB 3.6。在将MongoDB 3.6以下的大版本升级至MongoDB 4.0及以上大版本时,需要关注如下兼容性变更内容: aggregate不再支持返回单个文档,而是返回cursor。用户可以通过cursor指定batch的规格。aggregate的更多信息,请参见aggregate。
$type: "array"能直接检测到数组类型的文档(即能够同时检测到示例中_id为1和2的文档),之前只能检测到嵌套型的数组类型文档(仅能检测到示例中_id为2的文档)。
示例: {"_id":1,"a":[1,2,3]}
{"_id":2,"a":[1,2,[3,4]]}
$type的更多信息,请参见$type。
数组排序结果,发生以下变更: 在进行更新操作时,如果需要同时更新多个字段,新字段将按照字典顺序添加,更多信息,请参见$set。 将ISODate(日期类型)的值转换成字符串返回,支持毫秒(ms),且在末尾添加Z。 不再支持snapshot查询选项。
MongoDB 3.6的更多信息,请参见Compatibility Changes in MongoDB 3.6。 |
MongoDB 3.4 | 不再支持group,请使用aggregate中的$group (aggregation)替代。$group (aggregation)的更多信息,请参见$group (aggregation)。 使用$in表达式匹配+ upsert: true的update。 示例: db.c.drop()
db.c.update({a:{$in:[1]}},{$addToSet:{a:2}},{upsert:true}) //在MongoDB 3.4插入会失败,MongoDB 3.4之前的大版本可成功插入一条记录。
db.c.update({a:{$elemMatch:{$in:[2]}}},{$addToSet:{a:2}},{upsert:true}) //在MongoDB 3.4可成功插入一条记录。
update的更多信息,请参见update。
MongoDB 3.4的更多信息,请参见Compatibility Changes in MongoDB 3.4。 |
评论区