MongoDB 3.0支持WiredTiger存储引擎,提供可插拔存储引擎API,新增SCRAM-SHA-1认证机制,改进explain
功能。mongodb
容许第三方为MongoDB开发存储引擎数据库
首次引入WiredTiger存储引擎,目前支持两种存储引擎:json
WiredTiger支持MonoDB的全部特征,复制集和分片集群的成员能够采用不一样的存储引擎,须要client采用最新的官方驱动api
详见strorage.wiredTiger
相关配置安全
提供文档锁(document-level)和数据压缩,默认使用snappy库压缩集合数据,使用前缀压缩的方式压缩索引多线程
支持集合锁(collection-level),老版本是数据库锁(database-level),粒度更细,支持更高并发并发
为了支持多存储引擎,MMAPv1部分配置选项作了改变:app
再也不支持动态校准的文档分配,同时不建议使用paddingFactor
。
MMAPv1默认的文档分配策略是2的N方,忽略usePowerOf2Sizes
集合配置,因此未配置noPadding
的集合均采用2的N方分配策略。若只有insert和in-place update,能够设置noPadding。
当磁盘空间不足时,写操做仅在须要磁盘空间分配失败时报错,不涉及磁盘分配的删除操做或原地更新操做都可正常执行。高并发
支持最多50个节点,其中不超过7个投票节点,此特征须要注意所使用的驱动是否支持。
v3.0以前最多支持12个节点,其中不超过7个投票节点。工具
复制集primary节点执行stepDown的过程作了如下改变:
secondaryCatchUpPeriodSecs
参数,若是在指定时间内secondary节点没有遇上primary节点的状态,那么stepDown执行失败, 复制集不会选举新的primary作了如下改进:
sh.removeTagRange()
,让带标签的分片集群更容易管理,其做用相对于sh.addTagRange()
writeConcern
,用于配置chunk迁移操做,适用于balancer、moveChunk
命令、cleanupOrplaned
命令sh.status()
输出结果包含balancer的状态,详见官方文档作了如下改进:
为查询计划和查询执行提供粒度更细的自检,改进查询结果的输出格式
改进日志的可用性,根据组件、操做类型等进行分类,使得分析诊断更加方便,详见官方文档
全部工具(好比mongodump、mongorestore等)用Go重写并利用一个单独的项目维护
mongodump
和mongorestore
增长新的命令行参数--numParallelCollections
,支持多个集合并发导出/导入mongodump
新增命令行选项-excludeCollection
和--excludeCollectionsWithPrefix
,用于排除目标集合mongorestore
支持来自标准输入的BSON数据,以前输入仅支持来自BSON文件的数据mongostat
和mongotop
可以使用--json
命令行选项生成JSON格式的输出mongoimport
mongorestore
mongofiles
可以使用--writeConcern
命令行选项配置写选项mongofiles
可以使用--prefix
命令行选项配置GridFS前缀,自定义命名空间,所以一个数据库下可存放多个GridFS命名空间dropDatabase
drop
dropIndexes
操做而自动中断,上述命令在索引创建过程当中执行将报错 a background operation is currentlxiay runningcreateIndexes
命令指定多个索引
$dateToString
用于将日期转换成字符串$eq
表示相等条件