作者介绍
上海小胖,中国第十五位MONGODB PROFESSIONAL获得者,资深Python开发、DBA。DevOps践行者,曾独立开发Web服务平台,电商爬虫系统、运维管理系统,涵盖数据热力图、核心数据监控、服务器监控系统等。个人博客地址:https://segmentfault.com/u/shanghaixiaopang。
振奋人心的时刻终于到来!MongoDB 在上市之后,终于发布了MongoDB 3.6 RC3。今天花了整整一天把Release Notes 看了一遍,把大多数的功能都尝试了一遍,其中也不乏一些坑。有兴趣的小伙伴们可以先睹为快。
今天的文章将为大家带来一个总体的概览,并给出我个人的踩坑经验。
Security
在这里,能看出MongoDB 是有多重视安全了吧,把它放在第一位。那么有哪些需要注意的呢?
bind_ip
经过多轮比特比勒索案后(我猜的),在不影响开发效率的情况下,做了一些改变,将bind_ip 默认值修改为了localhost,这也是一个从之前版本升级过来后的坑,因为本人就因为一扫而过,直接看ReplcaSet 去了,导致在这里停留了半个小时,差点GG了。
那么如何解决这个问题呢?在启动时,会有一个关于这个的WARNING。
所以根据提示,我们只需要在启动的时候加上 –bind_ip_all 或者 在配置文件中加入net.bindIp: 0.0.0.0 或者 net.bindIpAll: true。
其它安全性方面的加强
- 在使用SSL 时,添加了opensslCipherConfig参数。
- 现在,只要服务端开启了认证权限,开发者只能发出一个getMore 的游标请求。
- 在db.createUser()和 db.updateUser()中添加了authenticationRestrictions 参数,可以用来控制Client端发来的请求源IP以及请求的Server端指定IP。(这个功能一直觉得很有必要出啊!真是出到我心坎里去了!)
- 添加了convertToCapped的方法用来储存自定义角色。
Aggregation
$lookup
(https://docs.mongodb.com/master/reference/operator/aggregation/lookup/#lookup-syntax-let-pipeline)
其它聚合操作符:
- $listSessions
- $listLocalSessions
- $currentOp
- $arrayToObject
- $objectToArray
- $mergeObjects
- $dateFromString
- $dateFromParts
- $dateToParts
db.aggregate()
比如:
- $currentOp
- $listLocalSessions
REMOVE
https://docs.mongodb.com/master/reference/aggregation-variables/#variable.REMOVE
Array Update Operator Enhancements
$[]
mongo Shell Changes
聚合
- $listSessions
- $listLocalSessions
JSON Schema
我们可以通过$jsonSchema操作符来对集合的创建进一步的限制,但千万不要以为,这是MongoDB 向 RDB 的妥协哦。
相反的,MongoDB 保留了它的Flexible特性,通过其中的required 属性,可以控制哪些字段是强制要求的,哪些是可以不用保持一致的。
并且还添加了description 属性,用来对字段进行注解,这样其它开发者包括DBAer 就可以一目了然了。
Replica Sets
另外我们的OpLog 也可以热重置了:
- 开始废弃了 副本集协议版本 0;
- 添加了 replSetResizeOplog 对OpLog 进行热重置大小,无需重启。
Sharded Clusters
ShardingTaskExecutorPoolMaxConnecting
https://docs.mongodb.com/master/reference/parameters/#param.ShardingTaskExecutorPoolMaxConnecting
其它加强
- 每个集合都添加了一个类似的UUID
- 不能对索引命名为带星号*
- 现在如果Multi-Key Index 上有没有数组的文档,也可以进行索引了
- adminCommand中的listDatabase 添加了一些参数
https://docs.mongodb.com/master/reference/command/listDatabases/#dbcmd.listDatabases
1)nameOnly
2)filter
- 现在网络传输中,支持zlib压缩协议了
今天的内容就分享到这里了,下次的分享内容有点纠结了,欢迎大家留言,多提意见。
- 实战 MongoDB 3.6 ReplcaSet 在线开启认证模式
- 解读 MongoDB 3.6 $jsonSchema
原文来自微信公众号:DBAplus社群
本文链接:http://www.yunweipai.com/23792.html