3分钟看完MongoDB3.6新特性 推荐 原创 dbapower 2017-12-05 09:46:44 博主文章分类:MongoDB ©著作权 文章标签 MongoDB MongoDB 新特性 文章分类 MongoDB 数据库 ©著作权归作者所有:来自51CTO博客作者dbapower的原创作品,请联系作者获取转载授权,否则将追究法律责任 <div align=center> </div> </br> 3分钟看完MongoDB3.6新特性 </br> Default Bind to Localhost 3.6版本起,默认使用localhost(127.0.0.1),多个ip使用逗号分隔:localhost,198.51.100.1 除去部分2.6 RPM安装包是本地外,其余版本默认是All interfaces. </br> Authentication Restrictions 3.6版本起,新增authenticationRestrictions参数用于将数据库用户连接限制为指定的IP地址,请将authenticationRestrictions参数添加到以下内容: Commands Methods createUser db.createUser() updateUser db.updateUser() createRole db.createRole() updateRole db.updateRole() </br> 其他安全性增强功能 在使用TLS / SSL加密时,添加了opensslCipherConfig参数来控制OpenSSL密码。 如果启用了身份验证,则只能针对您创建的游标发出getMore。 添加了convertToCapped操作来恢复角色。 </br> Change Streams MongoDB 3.6支持使用副本集或分片使用Change Streams。必须是复制协议版本1,且WT存储引擎。 Change Streams允许应用程序实时了解到数据的更改,而不会增加tail oplog的复杂性和风险。 应用程序可以使用Change Streams来订阅集合上的所有数据更改,并立即响应这些更改。 您可以使用db.collection.watch()方法从任何3.6系列驱动程序打开更改流。 有关使用的完整说明,请参阅您的首选驱动程序的文档。 使用Change Streams必须开启3.6版本特性参数featureCompatibilityVersion see https://docs.mongodb.com/master/reference/command/setFeatureCompatibilityVersion/#view-fcv 当数据到达集群中majority成员时,Change Streams才会立即通知客户端响应这些更改。 在开启权限的集群中,应用只能够使用Change Streams访问有权限的库和集合。 cursor = db.inventory.watch() document = next(cursor) </br> Lookup Full Document for Update Operations full_document来看完整而非增量的版本 cursor = db.inventory.watch(full_document='updateLookup') document = next(cursor) Resume a Change Stream resume_token = document.get("_id") cursor = db.inventory.watch(resume_after=resume_token) document = next(cursor) </br> Causal Consistency 需要客户端使用MongoDB driver 3.6版本,以及需要数据库开启3.6特性参数featureCompatibilityVersion </br> Retryable Writes 重试只会重试1次,。对于可重试写入,MongoDB驱动程序会在遇到网络错误或遇到副本集故障转移时自动重试这些操作,在此期间副本集没有primary。 限制: 1.只有副本集和shard可用 2.数据库要求WT或in-memory存储引擎 3.需要客户端使用MongoDB driver 3.6版本,以及需要,开启3.6特性参数featureCompatibilityVersion。 4.writeconcern必须配置,i.e{w:0}不可用。 5.由于重试尝试只进行一次,可重试功能可以帮助解决暂时的网络错误,但不能解决持久的网络错误。 6.驱动程序将等待serverSelectionTimeoutMS秒,以在重试之前确定新的主节点。 可重试功能不会处理故障转移期超过serverSelectionTimeoutMS的情况。 注意:如果客户端应用程序在发出写入操作后暂时无法响应localLogicalSessionTimeoutMinutes,则当客户端应用程序开始响应(不重新启动)时,写入操作可能会重试并重新应用。 </br> serverstatus serverStatus新增 logicalSessionRecordCache项. </br> JSON Schema MongoDB 3.6添加了$ jsonSchema操作符来支持使用JSON Schema进行文档验证。 有关详细信息,请参阅$ jsonSchema。 </br> Replica Sets 弃用副本集协议版本0(pv0)。 添加了replSetResizeOplog命令来动态调整副本集成员的oplog的大小。适用于运行WiredTiger存储引擎的实例。 添加了catchUpTakeoverDelayMillis配置选项,指定节点在发起选举之前等待的时间,默认30秒。 对于使用协议版本1(pv1)的副本集,如果仲裁人发现与候选人有相同或更高优先级的节点在,他们将在选举中投票反对票。 添加oplogInitialFindMaxSeconds参数来调整副本集的成员在数据同步期间其find命令等待多久。默认60s 增加了waitForSecondaryBeforeNoopWriteMS参数,以指定如果afterClusterTime大于oplog的最近应用时间,则secondary服务器必须等待多长时间。默认10毫秒 </br> Sharded Clusters 为mongos添加了ShardingTaskExecutorPoolMaxConnecting参数,以控制mongos将连接添加到mongod实例的速率。默认是2,仅对mongos有效 添加了orphanCleanupDelaySecs,它确定从源分片中删除迁移块之前的最小延迟。 现在可以对config数据库中的config.system.sessions集合进行分片。 </br> Indexes 索引可以覆盖嵌套文档中字段的查询。 如果索引跟踪到哪个字段使其成为多键,则多键索引可以覆盖对非数组键的查询。 创建索引时,不能将*指定为索引的名称。 </br> listdatabase db.adminCommand( { listDatabases: 1, nameOnly: true} ) 添加了nameOnly执行命令时不会加锁,而不添加的话会请求库级锁。 db.adminCommand( { listDatabases: 1, filter: { "name": /^rep/ } } ) filter会过滤想看的数据库,支持正则表达式 修改了validate命令和db.collection.validate()方法的行为,只有WiredTiger存储引擎强制执行检查点,将所有内存中的数据刷新到磁盘,然后验证磁盘上的数据。 • The <database>.system.profile entry for update and delete contains the entire update/delete document applied to the named collection. </br> dropDatabase dropDatabase命令会等待drop完所有集合的命令传播到大部分副本集成员后执行。 对于在副本集和分片集群上运行的命令,响应文档包括operationTime和$ clusterTime。 </br> Read Concern 新增available,对于非分片集群,“local”和“available”行为是相同的。 对于分片群集,“available”提供了对分区的更大容忍度,但如果分片正在进行块迁移,则可能会返回孤立文档。 </br> 总结 </br> MongoDB3.6的诸多新特性中,限于时间和篇幅原因未能在本文全部阐述,可以看出多种新特性在存储引擎上的选择都要求使用WiredTiger存储引擎,该存储引擎也是MongoDB3.0版本起开始支持,MongoDB3.2版本起默认的存储引擎。多种新特性中,最让我感到开心的是动态调整oplog大小,这个对于传统oplog扩容来说,方便了非常之多,停机调整oplog大小的时代即将终结。由于编写时间也很仓促,文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正。 喜欢的读者可以点个赞来个关注,您的赞美和关注是对笔者继续发文的最大鼓励与支持! 赞 收藏 评论 分享 举报 上一篇:About Me 下一篇:避免MySQL替换逻辑SQL的坑爹操作 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 Docker 离线安装 MongoDB 1 在线环境获取 Docker 镜像在有网络连接的环境中,使用以下命令下载 MongoDB 镜像并保存到本地:https://hub.docker.com/_/mongo#拉取镜像docker pull mongo:4.4.1#查看镜像docker images#删除镜像docker rmi mongo:4.4.12 导出 Docker 镜像在线环境中,使用 docker save 命令 docker 数据库 离线 mongodb 保姆级:Windows Server 2012上安装.NET Framework 3.5 目录一.问题所在无法在安装SQL server2008(2012)1.无法安装一下功能 .NET Framework 3.5二.解决措施1、打开服务器管理器2、添加角色和功能 3、选择安装功能 4、指定备用源路径5、配置本地文件路径一.问题所在无法在安装SQL server2008(2012)1.无法安装一下功能 .NET Framework 3.5如果直接装SQL serve 服务器管理 SQL 无法安装 mongodb 无线层级父子结构 MongoDB中的无线层级父子结构是指一种文档之间的关系模型,其中文档(或称为集合中的项)可以包含其他文档的引用,形成一个层级关系。在这种结构中,没有一个限制来规定一个文档可以有多少个子文档,因此被称为“无线”层级。在MongoDB中,这种父子关系通常用于组织数据,例如目录结构、组织架构、复杂的产品信息等。一个文档(父文档)可以有多个子文档,而每个子文档又可以有自己的子文档,这样就形成了一个层级树 平板电脑 插入数据 数据 [原创]Weka3.5--3.6中使用LibSVM [原创]Weka3.5中使用LibSVM2008-06-14 22:57:45 Dr. Y.Bao推荐数据试验中最好用上SVM的分类方法,让我们在Weka中使用LibSVM,我在网上差了半天,看到许多相同的被转来转去的帖子都讲得人晕 头转向,尤其是像我这种Java基础不牢固的人更是不知所以,弄了半天走了不少弯路,不过最后总算是让我把LibSVM集成进Weka了,下面就以我自己 的实际经验介绍 数据结构与算法 java c/c++ 核函数 jar VMware ESX 3.5与ESXi 3.5的区别 现在整个虚拟界都应该知道VMware公司作出了重大的决定将其旗舰hypervisor免费:ESXi 3.5 。尽管如此,也许不是每个人都知道,这个免费的平台与功能齐全的ESX 3.5相比有一定的局限性。为了澄清事情VMware公布了一项新的知识库对比文章,在这里。请注意,此表只集中在虚拟主机的功能上,并不考虑VirtualCenter的功能。 职场 休闲 esx 3.4 usermod命令 3.5 用户密码管理 3.6 mkpasswd命令 3.4 usermod命令1、usermod命令更改用户属性的命令usermod可以更改银行的uid ,gid,-d用户家目录;-s-用户shell扩展组;扩展组-除了原有的gid外,还有1005的grp2 就是扩展组;同时存在多个扩展组;3.5 用户密码管理1、用户密码管理用户密码更改后,可以看到用户密码已经更改;是加密的字符串2个!是代表空密码;* 表示密码是被锁定的;都无法登录用户密码被锁定 usermod 密码管理 3.4 usermod命令;3.5 用户密码管理;3.6 mkpasswd命令 3.4 usermod命令1. 更改用户uid:usermod -u uid 普通用户[root@hao-01 ~]# usermod -u 1003 hao2. 更改用户组gid:usermod -g gid或用户组 普通用户[root@hao-01 ~]# usermod -g 1002 hao[root@hao-01 ~]# use usermod 命令 用户密码 3.6-MongoDB备份和恢复 *MongoDB备份备份指定库 #在linux下操作,而不是数据库中。mongodump -h ip -d dbname -o dir //-h后面跟服务器ip,-d后面跟database名字,不加则备份所有库,-o后指定备份到哪里,它是一个目录如:/tmp/mogodbbackup备份所有库mongodump -h ip -o dir #本地备份,不需要-h备份指定集 备份 DB Mongo centos7 安装mongodb 3.6 1.配置MongoDB的yum源创建yum源文件:vim/etc/yum.repos.d/mongodb-org-3.6.repo添加以下内容:[mongodb-org-3.6]name=MOngoDBRepositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/gpgcheck=1 mongodb 安装 mongodb3.6服务没有呢 # MongoDB 3.6 服务部署教程## 介绍在本篇文章中,我将向你介绍如何在你的开发环境中部署 MongoDB 3.6 服务。无论你是刚入行的开发者还是有经验的开发者,我都会尽力解释每一步的细节和必要的代码,以帮助你成功完成任务。## 整体流程以下是部署 MongoDB 3.6 服务的整体流程:```mermaidgantt dateFormat YYYY-MM- mongodb 安装包 开发环境 Mongodb3.6 Replica Set 配置 单机下执行: mongo --port 27018 进入节点: 再将其他两个从节点加入到该复制集中 通过rs.status()查看效果,可以看到myset这个复制集中已经有了三个节点, mongodb 复制集 数据 python 3.6 3.8 区别 python3.6和3.5区别 概览Python3.6.0于2016年12月23日发布,与3.5版本相比,添加了以下新特性,详情请看python3.6发布日志。新的语法特性:格式化字符串字面值数字字符串中支持下划线变量注释的语法异步生成器异步列表推导新的模块添加了一个安全模块secrets到标准库中CPython实现改进字典基于Raymond Hettinger的建议使用更紧凑的表示重新实现了,和PyPy的字典实现类似。结果是和 python 3.6 3.8 区别 Python 3.6 新特性 字符串 python3.6和3.5区别 python3.6与3.8有什么区别 Python 3.8稳定版于2019年10月14日发布,相信还有很多项目并没有升级到3.8版本,今天有一个项目经理问我:我们项目组要升级到Python3.8,3.8和3.7有什么区别呢?你能不能跟我讲一下。我问了他为什么要升级,然后对他说:你就当3.7用就行了。他对我说:你们肯定也要升级,你赶紧了解一下,然后给我们讲一讲。虽然python2.7的项目我们依然在开发,但是谁知道什么时候就得必须升级了 python3.6和3.5区别 python编程语言模块 Python 字符串 子目录 python3.6 3.4版本区别 python3.6与3.5有什么区别 本文解释了Python 3.6中的新功能,与3.5相比。Python 3.6于2016年12月23日发布。有关完整的详细信息,请参阅更新日志。Summary – Release highlights(摘要)新特性PEP 498, formatted string literals.(格式化的字符串文字。)PEP 515, underscores in numeric literals.(以数字 python3.6 3.4版本区别 Python bc python mongodb 3.6 性能 mongodb4.4 Linux 离线安装MongoDB 4.4.40.前言版本:Centos7+MongoDB 4.4.4官网:https://www.mongodb.com/本篇文章安装配置为单个机器单个实例如若安装单个机器多个实例或多台机器集群,本篇文章仅限参考。1. 下载点击这里自定义版本下载,或者直接点击这里下载4.4.4版本version:4.4.4Platform:RedHat / CentOS 7. mongodb 3.6 性能 大数据 mongodb 数据库 配置文件 mongodb 3.6 聚合函数 mongodb 集合 1、MongoDB的集合(表):1)、数据库操作: 创建数据库:use 数据库名 查看所有数据库:show dbs 删除数据库:use 数据库 db.dropDatabase() 查看当前数据库:db 2)、集合操作: 创建集合:db.createCollection("集合名") 查看集合:show collections/tables 删除集合 数据 数据库 删除数据 python36和python3的区别 python3.6和3.5区别 本文解释了Python 3.6中的新功能,与3.5相比。Python 3.6于2016年12月23日发布。有关完整的详细信息,请参阅更新日志。Summary – Release highlights(摘要)新特性PEP 498, formatted string literals.(格式化的字符串文字。)PEP 515, underscores in numeric literals.(以数字文字 python36和python3的区别 python3.6sysos Python bc python python3.5与3.6对比 python3.5和3.9 今天分享的是最新出来的Python3.9。先来速看下此次发布版本的重点。新语法特性:PEP 584,为 dict 增加合并运算符。PEP 585,标准多项集中的类型标注泛型。PEP 614,放宽对装饰器的语法限制。新内置特性:PEP 616,移除前缀和后缀的字符串方法。新标准库中的特性:PEP 593,灵活的函数和变量标注。添加了 os.pidfd_open() ,允许不带竞争和信号的进程管理。解 python3.5与3.6对比 字符串 编程语言 python 人工智能 mongodb 3.6查询性能 mongodb查询速度 有个需求:跟踪mongodb的SQL语句及慢查询收集第一步:通过mongodb自带函数可以查看在一段时间内DML语句的运行次数。在bin目录下面运行 ./mongostat -port 端口号 则可以看到下面的数据 它的输出有以下几列:inserts/s 每秒插入次数query/s 每秒查询次数update/s 每秒更新次数delete/s 每秒删除次数getmo mongodb 3.6查询性能 数据 mongodb 慢查询 MongoDB 3.6 开启慢查询 参考:Profiling Levels:支持一下级别。0 默认的profiler level,profiler 关闭并且不收集数据。1 profiler 收集超过slowms的操作数据。2 profiler 收集所有的数据。 设置收集数据:设置级别为1,慢查询标准为200ms. rs0:PRIMAR mongodb 慢查询 数据 配置文件 数据存储