主要降级¶
从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
为collMod
verbose
对于 collStats
flags
对于 create
paddingFactor
,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 mongo
Shell方法
db.eval()
,db.collection.copyTo()
仅在连接到MongoDB 4.0或更早版本时才能运行。
copydb
and clone
命令的支持¶从版本4.2开始,MongoDB删除不推荐使用的copydb
命令和clone
命令。
相应的mongo
Shell帮助程序
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
命令和mongo
shell助手
的不推荐使用的选项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
用于计算avgDistance
and 的阶段maxDistance
:
也可以看看
repairDatabase
命令的支持¶从4.2版开始,MongoDB删除repairDatabase
命令及其mongo
shell助手db.repairDatabase()
以及repairDatabase
特权。
作为替代:
mongod
,请使用
compact
命令。有关操作的详细信息,请参见
compact
命令。reIndex
命令或其帮助器db.collection.reIndex()
。有关操作的详细信息,请参见reIndex
命令和
db.collection.reIndex()
参考页。mongod --repair
cloneCollection
¶MongoDB弃用该cloneCollection
命令及其
mongo
shell助手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
在降级期间关闭所有客户端连接。