On this page
MongoDB 2.6 发行说明
在本页面
- 2014 年 4 月 8 日*
MongoDB 2.6 现在可用。关键功能包括聚合增强,文本搜索集成,查询引擎改进,新的写操作协议和安全性增强。
Minor Releases
2.6.12 – 2016 年 3 月 24 日
解决了 MMAPv1 日记记录的问题,该 Logging 的“最后序列号”文件(
lsn
文件)可能在同步到数据文件SERVER-22261之前。解决了允许创建与built-in role:SERVER-19284同名的新角色的问题。
解决了在活动迁移期间运行某些索引操作可能导致迁移操作跳过某些文档的问题:SERVER-22535。
2.6.11 – 2015 年 8 月 12 日
改进查询计划排名SERVER-17815
改进了mongos检测副本集故障转移并将读取操作正确路由到新的主SERVER-18280的能力
改进了对db.currentOp()和数据库分析器SERVER-16265中
getMore
操作的查询报告
2.6.10 – 2015 年 5 月 19 日
改善mongos SERVER-11980上的用户缓存无效实施
为创建集合SERVER-18211提供正确的回滚
允许用户插入
system.profile
集合SERVER-18211修复查询系统,以确保为多键索引范围构建SERVER-18364选择非否定谓词而不是否定谓词
2.6.9 – 2015 年 3 月 24 日
解决与mongos个实例SERVER-17441相关的与连接处理相关的崩溃
添加服务器参数以配置空闲光标超时SERVER-8188
在分片群集SERVER-17426中使用
_id
查询从聚合管道中删除重复的(孤立的)文档修复了具有多个
2dsphere
索引SERVER-14723的geoNear个查询中的崩溃
2.6.8 – 2015 年 2 月 25 日
向 2.6 Shell 和 Client 端SERVER-17087添加listCollections命令功能
如果主要服务器降级SERVER-16599,则copydb/clone命令可能会使服务器崩溃
次要 fasserts 尝试复制索引SERVER-16274
在可能的情况下SERVER-15802,查询优化器应始终对唯一索引使用相等谓词
2.6.7 – 2015 年 1 月 13 日
分片具有多个标签SERVER-16683时减少mongos内存占用
删除了如果主服务器已关闭SERVER-16237的分片版本检查
修复:
/etc/init.d/mongod
启动脚本失败,目录名消息为SERVER-16081固定:mongos可以通过请求比所需的结果更多的结果来导致分片达到内存中的排序限制SERVER-14306
2.6.6 – 2014 年 12 月 9 日
修正:评估候选查询计划并在同一集合上进行并发写入可能会导致mongod SERVER-15580崩溃
固定:2.6 mongod当添加到具有 12 个或更多成员的 2.8 副本集时,segfault 会崩溃SERVER-16107
固定:带有索引的$regex,$in和
$sort
返回太多的结果SERVER-15696更改:如果目标分片上有数据并且所需的索引不存在,则moveChunk将失败。 SERVER-12472
如果在写入操作日志SERVER-12058时遇到问题,主数据库应中止。
2.6.5 – 2014 年 10 月 7 日
$rename
现在使用正确的点划线的源路径SERVER-15029部分撰写的日记本的最后一节不会影响恢复SERVER-15111
在创建SERVER-15369时显式将
.ns
个文件清零如果谓词生成空范围索引扫描SERVER-14961,则计划排序器将不再偏爱交叉口计划
生成 SUSE 11 SERVER-10642的社区和企业软件包
2.6.4 – 2014 年 8 月 11 日
修复了
text
索引,在某些情况下,对text
索引的字段进行就地更新可能会导致不正确/不完整的结果SERVER-14738在执行手动拆分块操作SERVER-14431之前,请检查拆分点的大小
通过从全局池中绘制辅助连接并在查询/命令SERVER-9788的末尾释放回该池,确保重新评估读取首选项。
在分片群集SERVER-14170中同时启用审计和授权时,允许从辅助数据库读取
2.6.3 – 2014 年 6 月 19 日
具有投影的
_id
上的相等查询可能不会对分片集合SERVER-14302返回任何结果。对
_id
进行相等查询并在_id
进行投影可能会返回分片集合SERVER-14304上的孤立文档。
2.6.2 – 2014 年 6 月 16 日
性能不同的查询计划可以在计划排名SERVER-13675期间并列。
如果 x.509 身份验证证书无效SERVER-13753,则mongod可能会终止。
临时 map/reduce 集合被错误地复制到 Secondary SERVER-13981。
mongos为嵌套字段分片键谓词SERVER-14138错误地将多个分片定位。
在 mapReduce 期间rs.stepDown()写入操作日志SERVER-14186时导致
fassert
。
2.6.1 – 2014 年 5 月 5 日
修复了使用
--install
选项SERVER-13515在 Windows 上安装 MongoDB 服务的问题。允许通过
yum
SERVER-13563从 2.4.x 直接升级到 2.6.0.修复背景索引构建在次要位置上的问题:SERVER-13589和SERVER-13620。
编辑作为启动选项SERVER-13644传递的凭据信息。
Major Changes
MongoDB 中的以下更改会影响标准版和企业版:
Aggregation Enhancements
聚合管道可以通过返回游标或将输出写入集合来返回任意大小的结果集。此外,聚合管道支持变量,并添加了新操作来处理集合和修订数据。
db.collection.aggregate()现在返回一个游标,它使聚合管道可以返回任何大小的结果集。
聚合管道现在支持
explain
操作,以帮助分析聚合操作。聚合现在可以使用更有效的基于外部磁盘的排序过程。
新的管道阶段:
$out阶段输出到集合。
- $redact阶段以允许其他控制权来访问数据。
新的或修改的运算符:
Literals 搜索集成
现在默认情况下已启用文本搜索,并且查询系统(包括聚合管道$match阶段)包括$text运算符,该运算符可解析文本搜索查询。
MongoDB 2.6 包含更新的text index格式,不赞成text
命令。
插入和更新改进
更新和插入系统的改进包括其他操作和改进,这些操作和改进可以提高修改后的数据的一致性。
在以下情况下,MongoDB 会在写操作之后保留文档字段的 Sequences* except *:
_id
字段始终是文档中的第一个字段。- 包含renaming字段名称的更新可能会导致文档中字段的重新排序。
新的或增强的更新运算符:
$bit运算符支持按位
xor
运算。$mul运算符,用于插入和更新操作的乘法增量。
See also
新的写操作协议
一种新的写协议将写操作与写关注点集成在一起。该协议还为批量操作提供了改进的支持。
MongoDB 2.6 添加了写入命令insert,update和delete,它们为改进的批量插入提供了基础。所有官方支持的 MongoDB 驱动程序都支持新的 write 命令。
mongo shell 现在包括执行批量写入操作的方法。有关更多信息,请参见Bulk()。
See also
适用于 Windows 的 MongoDB 的 MSI 软件包
MongoDB 现在为 Microsoft Windows 分发 MSI 软件包。这是在 Windows 下安装 MongoDB 的推荐方法。
Security Improvements
MongoDB 2.6 通过改进的 SSL 支持,基于 x.509 的身份验证,具有更精细的控件的改进的授权系统,集中的凭据存储以及改进的用户 Management 工具,增强了对安全部署的支持。
具体来说,这些更改包括:
新的authorization model提供了创建自定义User-Defined Roles的功能以及以集合级别的粒度指定用户权限的能力。
全局用户 Management,它将所有用户和用户定义的角色数据存储在
admin
数据库中,并提供了一组用于 Management 用户和角色的新命令。分片群集和/或副本集成员的client authentication和internal authentication的 x.509 证书身份验证。 x.509 身份验证仅适用于使用 SSL 的部署。
增强的 SSL 支持:
群集的滚动升级以使用 SSL。
MongoDB Tools支持使用 SSL 连接到mongod和mongos实例的连接。
启动时提示 Importing 密码1 乘mongod或mongos。
要求使用强 SSL 密码,所有连接的最小密钥长度为 128 位。强密码要求可防止旧 Client 端或恶意 Client 端强制使用弱密码。
MongoDB 默认情况下禁用 http 接口,限制为network exposure。要启用该界面,请参见
enabled
。
See also
查询引擎的改进
MongoDB 现在可以使用index intersection来满足多个索引支持的查询。
Index Filters以限制哪些索引可以成为查询的获胜计划。
用于查看和清除查询优化器缓存的query plans的查询计划缓存方法方法。
Improvements
Geospatial Enhancements
支持MultiPoint,MultiLineString,MultiPolygon和GeometryCollection。
支持$or表达式中的地理空间查询子句。
索引构建增强
重新启动后自动重建中断的索引。
如果独立实例或主实例在索引构建过程中(没有干净的关机*)终止,则mongod现在在实例重新启动时重新启动索引构建。如果实例完全关闭,或者如果用户终止了索引构建,则中断的索引构建不会在服务器重新启动时自动重新启动。
- 如果辅助实例在索引构建期间终止,则mongod实例现在将在实例重新启动时重新启动中断的索引构建。
若要禁用此行为,请使用--noIndexBuildRetry命令行选项。
ensureIndex()现在包装了一个新的
createIndex
命令。ensureIndex()和
createIndex
的dropDups
选项已弃用。
See also
增强的分片和复制 Management
新的cleanupOrphaned命令从分片中删除orphaned documents。
新的mergeChunks命令可合并位于单个分片上的连续块。参见mergeChunks和在分片群集中合并块。
新的rs.printReplicationInfo()和rs.printSlaveReplicationInfo()方法可分别从主数据库和辅助数据库的角度提供格式化副本状态报告。
配置选项 YAML 文件格式
MongoDB 2.6 除以前的配置文件格式外,还支持基于 YAML 的配置文件格式。有关更多信息,请参见Configuration File的文档。
Operational Changes
Storage
现在,usePowerOf2Sizes是所有新集合的默认分配策略。新的分配策略相对于文档总大小使用了更多的存储空间,但导致存储碎片的级别降低,并且随着时间的推移,存储容量的规划更加可预测。
要使用以前的“完全匹配分配策略”:
对于特定集合,请使用collMod并将usePowerOf2Sizes设置为
false
。对于整个mongod实例上的所有新集合,请将newCollectionsUsePowerOf2Sizes设置为
false
。
新集合包括:在initial sync期间创建的集合以及通过--repair选项和restoreDatabase
命令运行mongod的,由mongorestore和mongoimport工具创建的集合。
有关 MongoDB 存储系统的更多信息,请参见/core/storage。
Networking
删除了maxIncomingConnections对mongod和mongos的上限。以前的版本限制了
20,000
连接处的最大maxIncomingConnections设置。mongos实例的连接池可由多个 MongoDB 服务器使用。这可以减少大量工作负载所需的连接数量,并减少分片群集中的资源消耗。
现在,C 驱动程序使用isMaster命令而不是replSetGetStatus监视replica set运行状况。这使 C 驱动程序可以支持需要身份验证的系统。
新的cursor.maxTimeMS()和对应的
maxTimeMS
选项用于命令以指定时间限制。
Tool Improvements
mongo shell 支持全局/etc/mongorc.js。
现在,所有 MongoDB executable files都支持
--quiet
选项,以禁止显示除错误消息以外的所有日志记录输出。如果运行时没有
-c
或--collection
规范,则mongoimport使用 Importing 的文件名(不包含文件 extensions)作为集合名称。mongoexport现在可以使用--skip和--limit限制导出数据,并可以使用--sort选项在导出中对文档进行排序。
mongostat可以支持通过--discover选项使用--rowcount(-n)来产生指定数量的输出线。
为data_numberlong添加严格模式表示,以供mongoexport和mongoimport使用。
MongoDB 企业功能
以下更改特定于 MongoDB 企业版:
Windows 版 MongoDB Enterprise
适用于 Windows 的 MongoDB Enterprise现在可用。它包括对 Kerberos,SSL 和 SNMP 的支持。
Windows 的 MongoDB Enterprise 不包括 LDAP 对身份验证的支持。但是,适用于 Linux 的 MongoDB Enterprise 支持将 LDAP 身份验证与 ActiveDirectory 服务器一起使用。
适用于 Windows 的 MongoDB Enterprise 包含 OpenSSL 版本 1.0.1g。
Auditing
MongoDB Enterprise 为mongod和mongos实例添加了auditing功能。有关详细信息,请参见Auditing。
LDAP 对身份验证的支持
MongoDB Enterprise 提供对用户代理身份验证的支持。这样,Management 员可以将 MongoDB 集群配置为通过将身份验证请求代理到指定的轻型目录访问协议(LDAP)服务来对用户进行身份验证。有关详情,请参见使用 SASL 和 LDAP 与 OpenLDAP 进行身份验证和通过 ActiveDirectory 使用 SASL 和 LDAP 进行身份验证。
Windows 的 MongoDB Enterprise 不包括 LDAP 对身份验证的支持。但是,适用于 Linux 的 MongoDB Enterprise 支持将 LDAP 身份验证与 ActiveDirectory 服务器一起使用。
MongoDB 在包含 2.4 和 2.6 版分片的混合分片群集部署中不支持 LDAP 身份验证。有关升级说明,请参见将 MongoDB 升级到 2.6。
扩展了 SNMP 支持
MongoDB Enterprise 大大扩展了其 SNMP 支持,以提供对db.serverStatus()提供的几乎所有 Metrics 的 SNMP 访问。
See also
Additional Information
影响兼容性的更改
-
- [Deprecated $uniqueDocs](release-notes-2.6-compatibility.html#deprecated-uniquedocs) - [Stronger Validation of Geospatial Queries](release-notes-2.6-compatibility.html#stronger-validation-of-geospatial-queries)
-
- [null Comparison Queries](release-notes-2.6-compatibility.html#null-comparison-queries) - [$all Operator Behavior Change](release-notes-2.6-compatibility.html#all-operator-behavior-change) - [$mod Operator Enforces Strict Syntax](release-notes-2.6-compatibility.html#mod-operator-enforces-strict-syntax) - [$where Must Be Top\-Level](release-notes-2.6-compatibility.html#where-must-be-top-level) - [$exists and notablescan](release-notes-2.6-compatibility.html#exists-and-notablescan) - [MinKey and MaxKey Queries](release-notes-2.6-compatibility.html#minkey-and-maxkey-queries) - [Nested Array Queries with $elemMatch](release-notes-2.6-compatibility.html#nested-array-queries-with-elemmatch)
2.6 中的某些更改可能会影响compatibility,并且可能需要用户采取措施。 2.6 mongo shell 提供了db.upgradeCheckAllDBs()方法,以检查其中某些更改的升级准备情况。
有关兼容性更改的详细列表,请参见MongoDB 2.6 中的兼容性更改。
See also
Upgrade Process
-
- [Step down the replica set primary\.](release-notes-2.6-upgrade.html#step-down-the-replica-set-primary) - [Upgrade the primary\.](release-notes-2.6-upgrade.html#upgrade-the-primary)
-
- [Upgrade Sharded Clusters](release-notes-2.6-upgrade.html#upgrade-sharded-clusters)
-
- [Upgrade the cluster's meta data\.](release-notes-2.6-upgrade.html#upgrade-the-cluster-s-meta-data) - [Ensure mongos \-\-upgrade process completes successfully\.](release-notes-2.6-upgrade.html#ensure-mongos-upgrade-process-completes-successfully) - [Upgrade the remaining mongos instances to v2\.6\.](release-notes-2.6-upgrade.html#upgrade-the-remaining-mongos-instances-to-v2-6) - [Complete Sharded Cluster Upgrade](release-notes-2.6-upgrade.html#complete-sharded-cluster-upgrade)
-
- [Sharded cluster authSchemaUpgrade consideration\.](release-notes-2.6-upgrade-authorization.html#sharded-cluster-authschemaupgrade-consideration)
以具有特权的用户身份进行连接以 Management 用户和角色。
- [Create a role with required privileges\.](release-notes-2.6-downgrade.html#create-a-role-with-required-privileges) - [Create a user with the new role\.](release-notes-2.6-downgrade.html#create-a-user-with-the-new-role) - [Authenticate as the new user\.](release-notes-2.6-downgrade.html#authenticate-as-the-new-user)
-
- [Create backup of 2\.6 admin\.system\.users collection\.](release-notes-2.6-downgrade.html#create-backup-of-2-6-admin-system-users-collection) - [Update the version document for the authSchema\.](release-notes-2.6-downgrade.html#update-the-version-document-for-the-authschema) - [Remove existing documents from the admin\.system\.users collection\.](release-notes-2.6-downgrade.html#remove-existing-documents-from-the-admin-system-users-collection) - [Copy documents from the admin\.system\.backup_users collection\.](release-notes-2.6-downgrade.html#copy-documents-from-the-admin-system-backup-users-collection) - [Update the version document for the authSchema\.](release-notes-2.6-downgrade.html#id1)
-
- [Allow secondary to recover\.](release-notes-2.6-downgrade.html#allow-secondary-to-recover) - [Step down the primary\.](release-notes-2.6-downgrade.html#step-down-the-primary) - [Replace and restart former primary mongod\.](release-notes-2.6-downgrade.html#replace-and-restart-former-primary-mongod)
-
- [Procedure](release-notes-2.6-downgrade.html#id4)
有关完整的升级说明,请参见将 MongoDB 升级到 2.6。
Download
要下载 MongoDB 2.6,请转到downloads page。