MongoDB 3.6 发行说明
在本页面
Minor Releases
3.6.19-2020 年 7 月 23 日
Issues Fixed:
-
SERVER-46487分散/聚集操作的 mongos 路由可能具有无限延迟
-
SERVER-45610系统正在恢复时,某些读取工作正常
-
SERVER-47695由可在回滚后幸存的线程运行的写命令可能会导致操作失败 ServiceEntryPoint 中的时间不变
-
SERVER-47994解决了 GeoHash 中的数值溢出问题
-
SERVER-47686将静态 OpenSSL 升级到 1.1.1g
3.6.18-2020 年 5 月 1 日
Issues fixed:
-
SERVER-46466:与 findAndModify 可重试的写入和会话迁移竞赛
-
SERVER-45935:[3.6] WT 错误处理程序错误地打印了“检测到不受支持的日志格式”
-
SERVER-45418:DocumentSourceCursor 批处理内存记帐不考虑空文档,导致无限制的内存用于类似计数的聚合
-
SERVER-45363:使用通配符说明符时,mongodb 文本索引和权重存在问题
-
SERVER-35050:不要因文档计数为负而中止集合克隆
Note
已解决的问题包括解决以下常见漏洞和披露(CVE)的问题:
- CVE-2020-7921(请参阅SERVER-45472)
3.6.17-2020 年 1 月 27 日
Issues fixed:
-
SERVER-42565:聚合和查找命令对丢失的字段进行不同的排序
-
SERVER-44733:如果无法将单个分片作为 updateLookup 的目标,则更改流应引发 ChangeStreamFatalError
-
SERVER-44174:$ push 和$ addToSet 应该限制内存使用量
-
SERVER-37772:平台支持:添加社区和企业 RHEL 8 x64
-
SERVER-45396:使用 splithorizon 修复 isMaster 响应中的“ me”字段
-
WT-5042:减少检查点的配置解析开销
3.6.16-2019 年 12 月 6 日
Issues fixed:
-
SERVER-38002:将 Pcre 升级到至少 8.42
-
SERVER-35463:将 listCommands 标记为 pre-auth
-
SERVER-44584:由于修改错误地考虑了日志记录状态,因此重写更新
3.6.15-2019 年 11 月 6 日
Issues fixed:
-
SERVER-39004:介绍溢出文件的配额机制
-
SERVER-38994:退出 SIGTERM
-
SERVER-40355:包含大于节点数的_id 的 rs.config 将崩溃
-
SERVER-43074:写出目录文档时,请勿使用全局变量对“ multikeyPath”信息进行编码
-
WT-4869:在逐出落后时停止添加缓存压力
3.6.14-2019 年 8 月 26 日
Issues fixed:
-
SERVER-36443:长时间运行的查询不应导致未使用的 ChunkManager 对象的累积
-
SERVER-38945:SSL 性能回归
-
SERVER-40134:当唯一路径为多键时,针对视图的唯一命令可能返回错误结果
-
SERVER-42055:仅获取集合 IX 锁以写入 lastVote 文档
-
SERVER-42603:最近的服务文件更改可能会导致循环依赖性
-
SERVER-42089:平台支持:删除 Enterprise RHEL 6.7 zSeries
-
WT-4803:为缓存溢出机制实现 file_max 配置
Note
已解决的问题包括解决以下常见漏洞和披露(CVE)的问题:
-
CVE-2019-2389(请参阅SERVER-40563)
-
CVE-2019-2390(请参阅SERVER-42233)
3.6.13-2019 年 6 月 10 日
Issues fixed:
-
SERVER-16571:不同时使用实际内存限制与系统总内存
-
SERVER-38984:将 ID 附加到用户
-
SERVER-41213:唯一的后台索引构建可能会产生不一致的密钥
-
SERVER-37765:平台支持:删除 Ubuntu 14.04
-
SERVER-37774:平台支持:删除企业 Ubuntu 16.04 PPCLE
Note
已解决的问题包括解决以下常见漏洞和披露(CVE)的问题:
- CVE-2019-2386(请参阅SERVER-38984)
3.6.12-2019 年 4 月 8 日
Issues fixed:
-
SERVER-35219:通过会话恢复 MongoDB 平衡器性能
-
SERVER-39847:当目标分片的事务历史记录被 oplog 截断时,迁移会话信息会触发 fassert
-
SERVER-37255:带有并发选举的 replSetReconfig 可以触发不变式
-
SERVER-39394:视图归类检查应遍历嵌套的$ lookup 管道
-
SERVER-39487:NumberDecimal 的聚合运算符$ sqrt 输出与$ exp 相同
-
SERVER-37722:安静模式不会抑制连接结束事件
3.6.11-2019 年 3 月 1 日
Issues fixed:
-
SERVER-32146:记录慢速操作日志 Importing 应用程序
-
SERVER-9043:链接配置服务器和分片上的 flushRouterConfig
-
SERVER-37624:当您更改 localLogicalSessionTimeoutMinutes 的值时,会话永不过期
-
SERVER-38344:在初始收集分片期间过早释放分布式数据库锁会导致迁移/拆分失败
-
SERVER-39166:$ graphLookup 应该强制管道在分片群集中拆分
3.6.10-2019 年 1 月 22 日
Issues fixed:
-
SERVER-29825:不允许从未复制的数据库重命名为复制的数据库,反之亦然
-
SERVER-35936:MongoDB 社区安装程序无法安装 Compass
-
SERVER-36977:使用 umask vs 模式 600 创建初始 mongod.log
-
SERVER-37182:引用整个对象与$ arrayToObject 之后该对象的字段时的值不同
-
SERVER-37200:$ listSessions 之后的$ match 阶段不适用于 mongos
3.6.9-2018 年 11 月 16 日
Issues fixed:
-
SERVER-32943:后台索引构建期间的查询可能导致缓存计划不理想
-
SERVER-35657:在 await 操作日志可见时不要延迟日志刷新
-
SERVER-37058:使用数组内的数字字段名称更新可能导致验证失败
-
SERVER-37132:正则表达式的$ in 取反可能会错误地从缓存中进行计划,从而导致查询结果丢失
3.6.8-2018 年 9 月 19 日
Issues fixed:
-
SERVER-34204:针对分片群集,可定位游标在 getMore 上失败。
-
SERVER-34846:当排序规则不参与匹配或排序时,带有排序规则字段的覆盖索引返回错误结果。
-
SERVER-37002:在 MMAPv1 下,通过重命名删除具有长索引名的集合失败。
-
SERVER-36149:修复 setFCV 虚拟名称空间的特权。
3.6.7-2018 年 8 月 25 日
Issues fixed:
-
SERVER-27725:迁移块时使用批处理插入
-
SERVER-36070:启用审计后,包含$ out 的聚合将导致错误
-
TOOLS-2075:mongoreplay 始终重播到次要
3.6.6-2018 年 7 月 10 日
Issues fixed:
-
SERVER-33538:
mapReduce
在分片的输出集合上“替换”会导致 UUIDCatalog 不一致。 -
SERVER-32999:平台支持:删除 Debian 7 版本。
-
SERVER-5461将
syncSourceHost
字段添加到replSetGetStatus
输出。
3.6.5-2018 年 5 月 29 日
Issues fixed:
-
SERVER-34746:在将分片添加到分片之前以
--shardsvr
启动分片时出现分段错误。 -
SERVER-34423:collMod 中断可能会导致不变的故障。
-
SERVER-34390:适用于 macOS 的 MongoDB 二进制文件支持 TLS 1.2.
-
SERVER-29463:平台支持:添加 Debian 9“ stretch”。
-
SERVER-34399:具有无效恢复令牌的$ changeStream 使服务器崩溃。
-
SERVER-29301:将 MozJS 升级到 ESR 45.9.0.
3.6.4-2018 年 4 月 13 日
Issues fixed:
-
SERVER-28670:将分片元数据刷新 Metrics 部分添加到 serverStatus。
-
SERVER-32677:分段故障将 ReplicaSet 转换为 Replicated Shard Cluster。
-
SERVER-33763:3.6 驱动程序无法与以 FCV 3.4 运行的 3.6 分片群集通信。
-
SERVER-32923:删除 SLES11 支持。
-
SERVER-31535:删除对 Ubuntu 12.04 的支持。
-
SERVER-32498:
currentOp
输出不再返回threadId
字段。
3.6.3-2018 年 2 月 23 日
Issues fixed:
-
SERVER-32441:3.6 mongod在具有索引和嵌套
$and
/$or
的查找上崩溃。 -
SERVER-32606:由于 CappedPositionLost 导致在辅助节点上拖尾 oplog 失败
-
SERVER-32631:指定
--bind_ip
localhost 会导致错误“地址已在使用中”
3.6.2-2018 年 1 月 10 日
Issues fixed:
-
SERVER-31267:如果在 getMore 调用之间删除收集,则 CollectionCloner 失败。
-
SERVER-31625:使用 LDAP 服务器查询组时,需要转义
Unknown macro: {USER}
的内容。 -
SERVER-31684:带有 updateLookup 的$ changeStream 中的 QueryPlanKilled(操作超出时间限制)。
-
SERVER-31982:分片不会以多数 writeConcern 调用配置提交块迁移命令,也不会检查 writeConcern 错误。
-
SERVER-32246:v3.6 上的 PID 文件权限使其无法使用 pid 文件进行监视。
-
SERVER-32255:分片本地本地集合中可能没有 UUID。
-
SERVER-32282:即使在分片群集中以多个分片为目标时,聚合文本搜索也可以返回文本分数,即使没有要求也是如此。
-
SERVER-32396 mongo Shell 无法使用 3.6 连接字符串 SRV 连接
-
SERVER-32430:如果存在非简单的排序规则,DocumentSourceSort 会错误地对数组文档进行排序。
-
SERVER-32529:需要为碎片使用 replSet 会中断可查询的备份。
3.6.1-2017 年 12 月 26 日
Issues fixed:
-
SERVER-30768:如果使用 ExceededTimeLimit,则使用 maxTimeMS 进行的主查询会导致临时分片写入不可用。
-
SERVER-31225:mongod进程在监听连接之前派生。
-
SERVER-31885:当数据库不存在时,不会在mongos上返回 changeStream 游标。
-
SERVER-32085:changeStream 报告了未分片的集合的不正确的 documentKey。
-
SERVER-32046:某些 NumberDecimals 的数组可以触发不变的失败。
-
SERVER-32048:使用数字路径组件进行更新可能会导致无法创建索引条目。
Security
默认绑定到 localhost
从 MongoDB 3.6 开始,MongoDB 二进制文件mongod和mongos默认绑定到localhost
。从 MongoDB 版本 2.6 到 3.4,默认情况下,只有来自正式 MongoDB RPM(Red Hat,CentOS,Fedora Linux 和衍生产品)和 DEB(Debian,Ubuntu 和衍生产品)软件包的二进制文件会绑定到localhost
。要了解有关此更改的更多信息,请参见Localhost 绑定兼容性更改。
MONGODB-CR Deprecation
从 MongoDB 3.6 开始,不推荐使用MONGODB-CR
身份验证机制。如果尚未将MONGODB-CR
身份验证架构升级到 SCRAM,请参见升级到 SCRAM。
Authentication Restrictions
为了将数据库用户连接限制为指定的 IP 地址,将authenticationRestrictions
参数添加到以下内容:
Commands | Methods |
---|---|
createUser | db.createUser() |
updateUser | db.updateUser() |
createRole | db.createRole() |
updateRole | db.updateRole() |
其他安全增强功能
-
添加了opensslCipherConfig参数,以在使用 TLS/SSL 加密时控制 OpenSSL 密码。
-
如果启用了身份验证,则只能对创建的游标发出getMore。
-
已将convertToCapped操作添加到restore角色。
See also
Aggregation
从 MongoDB 3.6 开始,以下功能可用。
更富有表现力的$ lookup
$lookup通过允许对联接的集合进行变量指定和管道执行,增加了对指定多个联接条件以及不相关的子查询的支持。
有关详细信息,请参见联接条件和不相关的子查询的$lookup语法。
新的聚集阶段
MongoDB 3.6 添加了以下新的聚合管道阶段:
Operator | Description |
---|---|
$currentOp | 返回包含有关mongod实例上的活动和/或休眠操作的信息的文档流。使用新的聚合助手db.aggregate()。 |
$listSessions | 列出config 数据库中system.sessions 集合中的服务器会话。使用新的聚合帮助器db.aggregate()。 |
$listLocalSessions | 列出服务器缓存在内存中的服务器会话。 |
新的汇总运算符
Operator | Description |
---|---|
$arrayToObject | 将键值对数组转换为文档。 |
$objectToArray | 将文档转换为代表键值对的文档数组。 |
$mergeObjects | 将多个文档合并为一个文档。 |
$dateFromString | 将日期/时间字符串转换为日期对象。 |
$dateFromParts | 给定日期的组成部分,构造一个 BSON Date 对象。 |
$dateToParts | 返回包含日期组成部分的文档。 |
新的聚合助手
MongoDB 3.6 添加了一个助手db.aggregate(),以执行不依赖于基础集合的聚合,例如以$currentOp或$listLocalSessions开头的聚合。
新的汇总变量
REMOVE允许有条件地排除字段。
New Options
aggregate命令和db.collection.aggregate()方法支持以下新选项:
hint
选项以指定要使用的索引。
Note
hint
不适用于$lookup和$graphLookup阶段。
comment
选项可帮助通过数据库事件探查器,currentOp 和日志跟踪操作。
支持时区
MongoDB 3.6 将对时区的支持添加到汇总日期运算符。
See also
数组更新运算符增强
arrayFilters
以下命令和方法可以接受arrayFilters
参数,以指定要在数组字段中修改的元素:
多元素阵列更新
MongoDB 3.6 添加了以下新的位置运算符,用于对数组和嵌套数组的更新操作:
-
全位置$[]运算符将更新数组中的所有元素。
-
过滤后的位置$[<identifier>]运算符会更新数组中与arrayFilters条件匹配的所有元素。
用于推送的负数组索引位置
push
更新运算符的$position修饰符可以接受负数组索引值,以指示从数组末尾开始的位置。
3.6 兼容的驱动程序
以下驱动程序与 MongoDB 3.6 兼容:
Java 3.6+ | ||
Python 3.6+ C 1.9 | C#2.5 Node 3.0+ Ruby 2.5 | Perl 2.0 PHPC 1.4+ Scala 2.2+ |
DNS 构造的种子列表 mongodb srv
除标准连接格式外,3.6 驱动程序还支持 DNS 构造的种子列表。有关更多信息,请参见DNS 种子列表连接格式。
Change Streams
MongoDB 3.6 支持针对具有副本集分片的副本集和分片集群打开变更流。
更改流允许应用程序访问实时数据更改,而不会带来复杂性和拖尾oplog的风险。应用程序可以使用变更流来订阅集合中的所有数据变更,并对这些变更做出响应。
您可以使用db.collection.watch()方法从任何 3.6 系列驱动程序打开更改流。有关使用的完整说明,请参见首选驱动程序的文档。
有关更多信息,请参见Change Streams。
Important
要使用变更流,必须将featureCompatibilityVersion
设置为“ 3.6”。有关更多信息,请参见View FeatureCompatibilityVersion和setFeatureCompatibilityVersion。
Client Sessions
Causal Consistency
为了提供因果一致性,MongoDB 3.6 在client sessions中启用了causal consistency。因果一致的 Client 端会话表示读取和“确认”写入操作的关联序列具有因果关系,这种因果关系由它们的 Sequences 反映出来。Client 端应用程序必须确保一次只有一个线程在 Client 端会话中执行这些操作。
应用程序可以启动client session并将操作与特定会话相关联。应用程序必须确保一次只有一个线程在 Client 端会话中执行这些操作。
Important
要使用 Client 端会话:
-
Client 要求适用于 MongoDB 3.6 的 MongoDB 驱动程序已更新。
-
featureCompatibilityVersion
必须为“ 3.6”。有关更多信息,请参见View FeatureCompatibilityVersion和setFeatureCompatibilityVersion。
Retryable Writes
Important
对于可重试的写入:
-
Client 要求适用于 MongoDB 3.6 的 MongoDB 驱动程序已更新。
-
featureCompatibilityVersion
必须为“ 3.6”。有关更多信息,请参见View FeatureCompatibilityVersion和setFeatureCompatibilityVersion。
从 MongoDB 3.6 开始,副本集和分片群集上的某些公认的写操作是“可重试”的,以提供对瞬态网络错误或副本集选择的处理。
通过可重试的写入,MongoDB 驱动程序在遇到网络错误或遇到副本集故障转移时自动重试这些操作,在此期间副本集没有主副本。要为 3.6 驱动程序启用可重试写入,请参见retryWrites。
由于仅尝试一次重试,因此可重试功能可以帮助解决瞬态网络错误,但不能解决持久性网络错误。
有关可重试写入的更多信息,请参见Retryable Writes。
mongo Shell 更改
MongoDB 3.6 将新的命令行选项--retryWrites添加到mongo shell。该选项在mongo shell 中启用Retryable Writes。
以下新方法已添加到mongo shell 中的Mongo()
连接对象:
Server Sessions
MongoDB 的服务器会话或逻辑会话是client sessions用于支持Causal Consistency和retryable writes的基础框架。
Important
应用程序使用client sessions连接服务器会话。
服务器会话可用于独立的mongod实例,副本集和分片群集。
服务器会话命令
从 3.6 开始,MongoDB 驱动程序将所有操作与服务器会话相关联,但未确认的写入除外。如果部署强制执行身份验证/授权,则服务器会话将与经过身份验证的用户关联。
以下命令可用于列出,Management 和终止整个 MongoDB 集群中的服务器会话:
Commands | Descriptions |
---|---|
endSessions | 使指定的服务器会话到期。 |
killAllSessions | 杀死所有服务器会话。 |
killAllSessionsByPattern | 杀死所有与指定模式匹配的服务器会话。 |
killSessions | 终止指定的服务器会话。 |
refreshSessions | 刷新空闲服务器会话。 |
startSession | 开始新的服务器会话。 |
Parameters
以下新参数可用于服务器会话:
Aggregation Stages
为了支持服务器会话,MongoDB 3.6 添加了以下新的聚合管道阶段:
Operator | Description |
---|---|
$listSessions | 列出config 数据库中system.sessions 集合中的服务器会话。 |
$listLocalSessions | 列出服务器缓存在内存中的服务器会话。使用新的聚合帮助器db.aggregate()。 |
General
serverStatus返回有关logicalSessionRecordCache的信息。
Command Options
从 3.6 开始,MongoDB 驱动程序将所有操作与服务器会话相关联,但未确认的写入除外。以下选项可用于所有命令以支持与服务器会话的关联:
Important
mongo shell 和驱动程序将这些选项分配给会话中的命令。
Option | Type | Description |
---|---|---|
lsid | Document | 指定与命令关联的会话的唯一 ID 的文档。如果指定了txnNumber ,则需要lsid 。 |
txnNumber | 64-bit integer | 严格增加的非负数,用于在命令会话中唯一标识该命令。 |
如果指定,该命令还必须包含lsid
选项。
对于采用语句数组的delete,insert和update命令,还可以使用以下选项:
Important
不要手动设置stmtIds
。 MongoDB 将stmtIds
设置为严格增加的非负数。
Option | Type | Description |
---|---|---|
stmtIds | 32 位整数数组 | 在写命令中唯一标识其各自写操作的数字数组。 |
JSON Schema
MongoDB 3.6 使用 JSON 模式将$jsonSchema运算符添加为支持document validation。有关详细信息,请参见$jsonSchema。
要使用$jsonSchema,必须将featureCompatibilityVersion
设置为“ 3.6”。
See also
Replica Sets
-
弃用副本集协议版本 0(
pv0
)。有关副本集协议版本的更多信息,请参见副本集协议版本。 -
添加了replSetResizeOplog命令来动态调整副本集成员的 oplog 的大小。适用于运行 WiredTiger 存储引擎的实例。
-
添加了catchUpTakeoverDelayMillis配置选项,用于指定节点确定当前节点primary之前的 await 选举时间。
-
对于使用协议版本 1(
pv1
)的副本集,如果仲裁者检测到与候选者具有相同或更高优先级的正常主节点,则在选举中将投票否决。有关副本集协议版本的更多信息,请参见副本集协议版本。 -
添加了oplogInitialFindMaxSeconds参数来调整replica set的成员应在data synchronization期间 await 其find命令完成多长时间。
-
添加了waitForSecondaryBeforeNoopWriteMS参数,以指定如果
afterClusterTime
大于操作日志中的上次应用时间,辅助节点必须 await 多长时间。 -
添加了对在副本集成员的initial sync期间运行以下命令的支持:
-
-
聚合管道中的$out个阶段
-
Map-reduce个输出到新集合的作业
Sharded Clusters
- 从 3.6 开始,分片必须是副本集。要将分片群集升级到版本 3.6,分片服务器必须作为副本集运行。
要将现有的分片独立实例转换为分片副本集,请参见将分片独立版转换为分片副本集。
General Enhancements
MongoDB 罗盘包装
MongoDB Server 下载与特定于平台的installation script打包为MongoDB 罗盘社区版打包在一起。此脚本在 MongoDB 服务器安装过程中安装 MongoDB Compass。
Collection Identifier
集合具有不变的unique identifier。 featureCompatibilityVersion
必须设置为"3.6"
。
See also
新查询运算符
MongoDB 3.6 添加了以下新的查询运算符:
-
新的$jsonSchema运算符将匹配根据给定 JSON 模式验证的文档。要使用$jsonSchema,必须将
featureCompatibilityVersion
设置为“ 3.6”。 -
$expr允许在查询语言中使用聚合表达式。
See also
Removed Operators
MongoDB 3.6 删除了弃用的$pushAll
更新运算符。有关更多信息,请参见删除$ pushAll 更新运算符。
Indexes
-
索引可以涵盖对嵌套文档中的字段的查询。
-
如果索引跟踪哪些字段使其成为多键,则多键索引可以覆盖非数组键的查询。
-
创建索引时,不能指定
*
作为索引名称。参见索引命名为*。
Commands
-
向listDatabases命令添加了以下选项:
-
nameOnly
仅返回数据库名称(不需要数据库锁),而不是同时返回数据库名称和大小信息(不需要数据库锁)。filter
返回与输出上指定的匹配条件匹配的数据库。
-
修改了validate命令和db.collection.validate()方法的行为,以使 WiredTiger 存储引擎仅对于
full
验证才强制执行检查点,将所有内存中数据刷新到磁盘,然后验证磁盘上的数据。另请参见validate Operation。 -
update和delete的
<database>.system.profile
条目包含应用于命名集合的整个更新/删除文档。 -
dropDatabaseawait,直到数据库中的所有集合删除都传播到大多数副本集成员为止。
-
对于在副本集和分片群集上运行的命令,响应文档包括
operationTime
和$clusterTime
。参见db.runCommand和db.adminCommand。 -
弃用的getPrevError命令。
有线协议和压缩
-
MongoDB 3.6 引入了一个新的wire protocol操作码OP_MSG。此操作码的消息格式是可扩展的,旨在包含其他操作码的功能。
-
MongoDB 3.6 为
--networkMessageCompressors
选项(或使用配置文件的net.compression.compressors设置)添加了对zlib
压缩器的支持。--networkMessageCompressors
选项(或net.compression.compressors设置)启用网络压缩,以在mongod,mongos,mongo Shell 和支持OP_COMPRESSED
消息格式的驱动程序之间进行通信。 -
默认情况下,mongod和mongos启用网络压缩,并以
snappy
作为压缩器。有关网络压缩的更多信息,请参见net.compression.compressors。
Read Concern
- 新的"available"阅读关注可用。对于未分片的集合(包括独立部署或副本集部署中的集合),"local"和"available"的读取关注点行为相同。对于分片群集,"available"为分区提供了更大的容忍度,但是如果分片正在进行块迁移,则"available"可能会返回孤立文档。
See also
-
始终启用"majority"阅读关注,并且弃用/淘汰了--enableMajorityReadConcern和replication.enableMajorityReadConcern的使用。
-
从 MongoDB 3.6 开始,MongoDB 默认情况下启用对"majority"读取关注的支持。 | 对于 MongoDB 3.6.1-3.6.x ,您可以禁用读取关注"majority",以防止存储高速缓存压力使具有主次仲裁器(PSA)架构的部署无法实现。禁用"majority"读取关注也将禁用对change streams的支持
有关更多信息,请参见禁用多数阅读关注。
FTDC
MongoDB 3.6 在mongos中添加了对 Diagnostics Capture(也称为FTDC
)的支持。 [1]在以前的版本中,此功能仅适用于mongod。参见Diagnostic Parameters。
Note
FTDC 默认情况下处于启用状态。
[1] | MongoDB 3.4.14 还添加了对 FTDC 的mongos支持。 |
Additional Enhancements
MongoDB 3.6 包括以下增强功能:
-
添加了对使用
--bind_ip
指定完整 Unix 域套接字路径的支持。 -
mongod现在提供了--timeZoneInfo选项。使用此选项可以指定系统时区数据库的路径。 Linux 和 macOS 软件包随附的默认配置文件将其设置为
/usr/share/zoneinfo
。 -
日期操作现在在所有受支持的 os 上接受一致的日期范围。您可以安全地使用
0
到9999
范围内的年份。 -
mongod的新honorSystemUmask启动选项使 MongoDB 创建的新文件具有运行mongod进程的用户的umask指定的读/写权限。仅在 Linux 和 macOS 系统上可用。
-
数据库的maxWriteBatchSize限制(表示写批处理中允许的最大写操作数)从
1,000
增加到100,000
。 -
planCacheListPlans数据库命令产生的输出与PlanCache.getPlansByQuery() shell 方法产生的输出相同。这两个操作的输出现在都包括计划生成时间的时间戳。
-
新的KeysRotationIntervalSec服务器参数指定HMAC 签名密钥在旋转到下一个秒之前有效的秒数。
影响兼容性的更改
某些更改可能会影响兼容性,并且可能需要用户采取措施。有关兼容性更改的详细列表,请参见MongoDB 3.6 中的兼容性更改。
Upgrade Procedures
Feature Compatibility Version 3.4
要升级,3.4 实例必须将featureCompatibilityVersion
设置为 3.4. 要检查版本:
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
有关验证和设置featureCompatibilityVersion
的特定详细信息以及有关升级的其他先决条件/注意事项的信息,请参阅各个升级说明:
如果您需要有关升级到 3.6 的指导,请MongoDB 提供主要版本升级服务帮助确保平稳过渡而不会中断您的 MongoDB 应用程序。
Download
要下载 MongoDB 3.6,请转到MongoDB 下载中心
See also
3.6.3 中的已知问题
-
-
MongoDB 3.6 尚未在 macOS 10.13 中的新文件系统 APFS 上进行测试,可能会遇到错误。
-
构建内存结构的操作因果关系不一致;但是,只有某些操作与因果一致的会话相关联时会返回错误。参见因果一致性限制。
3.6.2 中的已知问题
-
-
-
MongoDB 3.6 尚未在 macOS 10.13 中的新文件系统 APFS 上进行测试,可能会遇到错误。
-
构建内存结构的操作因果关系不一致;但是,只有某些操作与因果一致的会话相关联时会返回错误。参见因果一致性限制。
3.6.1 中的已知问题
-
-
-
MongoDB 3.6 尚未在 macOS 10.13 中的新文件系统 APFS 上进行测试,可能会遇到错误。
-
构建内存结构的操作因果关系不一致;但是,只有某些操作与因果一致的会话相关联时会返回错误。参见因果一致性限制。
3.6.0 中的已知问题
-
-
-
当将 URI 与 SRV 一起使用时,如果在命令行 URI 中未指定查询参数,则提取的 TXT 记录将被忽略。要解决此问题,请在 URI 查询字符串中显式指定用于与数据库通信的 TLS/SSL 设置(ssl = true 或 ssl = false)。
-
-
MongoDB 3.6 尚未在 macOS 10.13 中的新文件系统 APFS 上进行测试,可能会遇到错误。
-
构建内存结构的操作因果关系不一致;但是,只有某些操作与因果一致的会话相关联时会返回错误。参见因果一致性限制。
See also
报告问题
要报告问题,请参阅https://github.com/mongodb/mongo/wiki/Submit-Bug-Reports,以获取有关如何为 MongoDB 服务器或相关项目之一提交 JIRA 票证的说明。
-
- [aggregate Method Sorting](release-notes-3.6-compatibility.html#aggregate-method-sorting) - [Sorting with a Compound Sort Pattern on Multiple Array Fields with aggregate](release-notes-3.6-compatibility.html#sorting-with-a-compound-sort-pattern-on-multiple-array-fields-with-aggregate)
-
- [Disable the Balancer\.](release-notes-3.6-downgrade-sharded-cluster.html#disable-the-balancer) - [Downgrade the mongos instances\.](release-notes-3.6-downgrade-sharded-cluster.html#downgrade-the-mongos-instances) - [Downgrade each shard, one at a time\.](release-notes-3.6-downgrade-sharded-cluster.html#downgrade-each-shard-one-at-a-time) - [Downgrade the config servers\.](release-notes-3.6-downgrade-sharded-cluster.html#downgrade-the-config-servers) - [Re\-enable the balancer\.](release-notes-3.6-downgrade-sharded-cluster.html#re-enable-the-balancer)