欢迎您光临本站,如有问题请及时联系我们。

MongoDB 3.6新功能先睹为快!

  经过多轮比特比勒索案后(我猜的),在不影响开发效率的情况下,做了一些改变,将bind_ip默认值修改为了localhost,这也是一个从之前版本升级过来后的坑,因为本人就因为一扫而过,直接看ReplcaSet去了,导致在这里停留了半个小时,差点GG了。


  那么如何解决这个问题呢?在启动时,会有一个关于这个的WARNING。


  MongoDB


  所以根据提示,我们只需要在启动的时候加上–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

  聚合方面,MongoDB确实在每一次的版本更新中都是会有出色表现的,这一次也不为过,不过我并不准备在这里逐一介绍。有兴趣的小伙伴可以自己翻阅哦~或者等待后续文章补充~

  $lookup

  不得不提的还是这个$lookup相比3.4,3.6中的$lookup又得到了加强,可以配合let和pipeline来做出更优秀的连表查询了。可以参考一下Example。

  (https://docs.mongodb.com/master/reference/operator/aggregation/lookup/#lookup-syntax-let-pipeline)


  其它聚合操作符:


  $listSessions

  $listLocalSessions

  $currentOp

  $arrayToObject

  $objectToArray

  $mergeObjects

  $dateFromString

  $dateFromParts

  $dateToParts

  db.aggregate()

  这是一个新的方法,用于在admin库下,操作一些实例的事件。

  比如:


  $currentOp

  $listLocalSessions

  REMOVE

  新的聚合方法,用于删除聚合中指定的某一字段。

  https://docs.mongodb.com/master/reference/aggregation-variables/#variable.REMOVE


  ArrayUpdateOperatorEnhancements

  $[]

  现在可以通过$[]操作符来对数组中的所有元素进行一次性修改了,而且这个修改可以是使用类似$divide、$sum等操作符~

  $[]

  可以通过$[element]配合$cond条件操作符等,来达到对数组的符合条件的元素统一更新。

  mongoShellChanges

  聚合

  在MongoDBShell中,加入了一些对于session的操作指令集。

  $listSessions

  $listLocalSessions

  JSONSchema

  噔噔噔噔~这个功能也是我力荐的,这里只做简要描述。期待下次分享~

  我们可以通过$jsonSchema操作符来对集合的创建进一步的限制,但千万不要以为,这是MongoDB向RDB的妥协哦。


  相反的,MongoDB保留了它的Flexible特性,通过其中的required属性,可以控制哪些字段是强制要求的,哪些是可以不用保持一致的。


  并且还添加了description属性,用来对字段进行注解,这样其它开发者包括DBAer就可以一目了然了。


  ReplicaSets

  在副本集中,添加了一些功能和指令集,这些都不是最吸引我的,最吸引我的是如何在线添加认证模式!不需要重启!没错,告别曾经那些半夜的窗口期吧!只有MongoDB能够做到!

  另外我们的OpLog也可以热重置了:


  开始废弃了副本集协议版本0;

  添加了replSetResizeOplog对OpLog进行热重置大小,无需重启。

  ShardedClusters

  添加了一个指令集,用来控制Sharding的同时并发任务数

  ShardingTaskExecutorPoolMaxConnecting


  https://docs.mongodb.com/master/reference/parameters/#param.ShardingTaskExecutorPoolMaxConnecting


  其它加强

  每个集合都添加了一个类似的UUID

  不能对索引命名为带星号*

  现在如果Multi-KeyIndex上有没有数组的文档,也可以进行索引了

  adminCommand中的listDatabase添加了一些参数

  https://docs.mongodb.com/master/reference/command/listDatabases/#dbcmd.listDatabases


  1)nameOnly


  2)filter


  现在网络传输中,支持zlib压缩协议了

  今天的内容就分享到这里了,下次的分享内容有点纠结了,欢迎大家留言,多提意见。


来源:本文由E8运维原创撰写,欢迎分享本文,转载请保留出处和链接!