主要降级¶
从MongoDB 4.2开始,replSetStepDown(并
replSetReconfig导致退出)不再关闭所有客户端连接。但是,正在进行的写入将被杀死。
在MongoDB 4.0和更低版本中,replSetStepDown在降级期间关闭所有客户端连接。
参考 > 发行说明 > MongoDB 4.2发行说明 > MongoDB 4.2中的兼容性更改
MongoDB 4.2删除了对不建议使用的MMAPv1存储引擎的支持。
如果您的4.0部署使用MMAPv1,则必须在升级到MongoDB 4.2之前将部署更改为 WiredTiger Storage Engine。有关详细信息,请参见:
MongoDB删除了以下特定于MMAPv1的配置选项:
| 删除配置文件设置 | 删除的命令行选项 |
|---|---|
storage.mmapv1.journal.commitIntervalMs |
|
storage.mmapv1.journal.debugFlags |
mongod --journalOptions |
storage.mmapv1.nsSize |
mongod --nssize |
storage.mmapv1.preallocDataFiles |
mongod --noprealloc |
storage.mmapv1.quota.enforced |
mongod --quota |
storage.mmapv1.quota.maxFilesPerDB |
mongod --quotaFiles |
storage.mmapv1.smallFiles |
mongod --smallfiles |
storage.repairPath |
mongod --repairpath |
replication.secondaryIndexPrefetch |
mongod --replIndexPrefetch |
注意
从4.2版开始,MongoDB进程将不会以这些选项开头。如果使用WiredTiger部署,请删除所有MMAPv1特定的配置选项。
MongoDB删除MMAPv1特定touch命令。
MongoDB删除了MMAPv1特定的选项:
noPadding和usePowerOf2Sizes为collModverbose 对于 collStatsflags 对于 createpaddingFactor,paddingBytes,preservePadding的
db.createCollection()。group命令的支持¶从版本4.2开始,MongoDB删除group命令(自版本3.4起不推荐使用)及其mongo外壳帮助程序db.collection.group()。
而是db.collection.aggregate()与$group舞台一起使用。
eval命令的支持¶从4.2版开始,MongoDB删除该eval命令。eval
从3.0版开始不推荐使用该命令。
关联的MongoDB 4.2 mongoShell方法
db.eval(),db.collection.copyTo()仅在连接到MongoDB 4.0或更早版本时才能运行。
copydband clone命令的支持¶从版本4.2开始,MongoDB删除不推荐使用的copydb
命令和clone命令。
相应的mongoShell帮助程序
db.copyDatabase(),db.cloneDatabase()仅在连接到MongoDB 4.0或更早版本时才能运行。
作为替代方案,用户可以使用mongodump和
mongorestore(以及mongorestore选项
--nsFrom和--nsTo)或使用驱动程序编写脚本。
例如,要将test数据库从在默认端口27017上运行的本地实例复制到examples同一实例上的数据库,您可以:
用于mongodump将test数据库转储到归档文件mongodump-test-db:
mongorestore与--nsFrom和--nsTo一起使用以从存档中恢复(更改数据库名称):
小费
根据需要包括其他选项,例如指定uri或主机,用户名,密码和身份验证数据库。
另外,也可以不使用存档文件,而可以
mongodump将test数据库连接到标准输出流,并通过管道传递到mongorestore:
parallelCollectionScan命令的支持¶从4.2版开始,MongoDB删除该parallelCollectionScan
命令。
maxScan¶MongoDB删除了maxScan该
find命令和mongoshell助手
的不推荐使用的选项cursor.maxScan()。请使用命令maxTimeMS选项
find或帮助程序cursor.maxTimeMS()。
geoNear命令的支持¶从4.2版开始,MongoDB删除该geoNear命令。请使用$geoNear聚合阶段。
的选项$geoNear类似于已删除的
geoNear命令,但以下情况除外:
删除的geoNear命令在其输出dis中包含一个名为的字段
,其中包含距离信息。
对于$geoNear舞台,在中指定距离字段名称distanceField。
删除的geoNear命令接受包含字段boolean的includeLocs选项的值
loc。
对于$geoNear阶段,在中指定位置字段名称includeLocs。
删除的geoNear命令包括avgDistance和
maxDistance的返回结果。
您也可以使用聚合管道返回avgDistance
和maxDistance。具体而言,在该
$geoNear阶段之后,包括一个$group用于计算avgDistanceand 的阶段maxDistance:
也可以看看
repairDatabase命令的支持¶从4.2版开始,MongoDB删除repairDatabase命令及其mongoshell助手db.repairDatabase()以及repairDatabase特权。
作为替代:
mongod,请使用
compact命令。有关操作的详细信息,请参见
compact命令。reIndex
命令或其帮助器db.collection.reIndex()。有关操作的详细信息,请参见reIndex命令和
db.collection.reIndex()参考页。mongod --repaircloneCollection¶MongoDB弃用该cloneCollection命令及其
mongoshell助手db.cloneCollection()
作为替代方案
mongoexport和/
mongoimport或编写脚本。MongoDB弃用以下内容:
PlanCache.getPlansByQuery()
方法/ planCacheListPlans命令。
$planCacheStats聚合阶段。请参阅
查找高速缓存条目详细信息以获取查询形状。PlanCache.listQueryShapes()
方法/ planCacheListQueryShapes命令。
$planCacheStats聚合阶段。请参阅
列表查询形状。$out舞台限制¶$out和视图¶$out和$lookup¶$out和linearizable阅读水平的关注¶$out阶段不能与已关注的内容一起使用"linearizable"。$out和解释¶$out和majority阅读水平的关注¶从MongoDB 4.2开始,您可以为包含阶段的聚合指定读取关注级别。"majority"$out
在MongoDB 4.0和更早版本中,您不能包括将读取关注用于聚合的$out
阶段"majority"。
killCursors的第一个操作。从MongoDB 4.2开始,无论是否支持读关注,更改流都可用"majority"。也就是说,majority可以启用阅读关注支持(默认)或禁用
以使用更改流。
在MongoDB 4.0和更早版本中,更改流仅在"majority"启用了阅读关注支持时才可用(默认)。
也可以看看
从MongoDB 4.2开始,更改流将使用simple二进制比较,除非提供了明确的排序规则。在早期版本中,在单个集合(db.collection.watch())上打开的更改流将继承该集合的默认排序规则。
从4.2版开始,MongoDB删除--sslFIPSMode
以下程序的选项:
程序将使用FIPS兼容的连接
mongod/ mongos如果
mongod/ mongos实例
经配置以使用FIPS模式。
从4.2版开始:
bsondump |
使用扩展JSON v2.0(规范模式)格式。 |
mongodump |
对元数据使用扩展的JSON v2.0(规范模式)格式。需要 小费 在一般情况下,使用相应的版本
|
mongoexport |
默认情况下,以扩展JSON v2.0(轻松模式)创建输出数据。
如果与一起使用,则以扩展JSON v2.0(规范模式)创建输出数据。
--jsonFormat canonical |
mongoimport |
预期导入数据默认为扩展JSON v2.0(轻松模式或规范模式)。
如果
--legacy指定了选项,则可以识别扩展JSON v1.0格式的
数据。小费 在一般情况下,的版本 |
有关MongoDB扩展JSON v2的详细信息,请参阅 MongoDB扩展JSON(v2)。
--query选项¶在4.2版本开始,对于查询选项mongodump,并mongoexport
必须在扩展JSON格式V2(或放宽规范/严格模式),包括封闭在引号中的字段名称和经营者,如以下:
在早期版本中,查询选项使用扩展JSON v1格式,并且字段名称和运算符不需要用引号引起来:
从MongoDB 4.2开始,replSetStepDown(并
replSetReconfig导致退出)不再关闭所有客户端连接。但是,正在进行的写入将被杀死。
在MongoDB 4.0和更低版本中,replSetStepDown在降级期间关闭所有客户端连接。