首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MongoDB 4.2 新特性解读

MongoDB World 2019 上发布新版本 MongoDB 4.2 Beta,包含多项数据库新特性,本文尝试从技术角度解读。 ?...Full Text Search MongoDB 4.2 之前,全文搜索(Full Text Search)能力是靠 Text Index 来支持,在 MongoDB-4.2 里,MongoDB...Update 能力增强 4.2 之前,Update 操作基本上都是用确定值更新某个字段,在新版本里,Update 能根据文档现有字段内容来生成新更新内容,如下实例,根据文档 pay、tax 字段...,加起来生成一个 total 字段;这个在 4.2 之前,用户需要先读取文档内容,获取 pay、tax 字段得到结果,然后调用 Update 设置新字段。...分析能力增强 Aggregation 方面,MongoDB 也做了大量改进,来更好支持业务分析场景;比如增加merge操作符,能不断增量分析结果与原来结果进行汇总(老版本只支持out,把当次分析结果写到某个集合

1.3K20

MongoDB限制与阈值

提示 另请参考:命名限制 索引 索引键限制 注意 4.2版本有变更 从4.2版本开始,MongoDB对于fCV设置成**"4.2"**及以上环境去除了此索引键限制。...MongoDB不会将任何具有索引字段文档插入到索引集合,该文档索引字段对应索引条目超过索引键限制,而是返回错误。MongoDB早期版本插入此类文档,但不会为其创建索引。...索引名称长度 注意 4.2版本有变更 从4.2版本开始,MongoDB对于fCV设置成**"4.2"**及以上环境去除了此索引名称长度限制。...分片键限制 分片键大小 从4.4版本开始,MongoDB去除了关于分片键大小限制。 在4.2之前版本,一个分片键大小不能超过512B。...分片键在MongoDB4.2及以前版本是不可改变 注意 4.4版本更新 从MongoDB 4.4开始,您可以通过向现有键添加一个或多个后缀字段来优化集合分片键。

14.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MongoDB 4.2亮点功能之——管道更新功能和查询功能

    我们向你介绍该命令工作方式,再介绍新聚合运算符以及4.2版本表达式,为你提供更多选项——三角函数、正则表达式和当前时间。 无处不在管道 在何处使用聚合管道问题现在已经发生了重大转变。...在MongoDB 4.2,我们可以这样操作: 聚合管道移入我们更新命令,我们选定文档就发生了相应变化。如果我们设定一个字段值,它就会被写入文档。这些全部发生在服务器上,没有数据往返情况。...平滑算子 在MongoDB 4.2推出之前,通用三角函数计算功能是缺失几项功能之一。在MongoDB 4.2,一整套三角函数表达式被添加到聚合框架,避免了功能缺失风险。...适用所有情况正则表达式 MongoDB 4.2之前,你只能在聚合$match执行阶段使用$regex运算符。这意味着,以前你只能将其用于匹配操作,而不能用于解析和抽取部分字符串。...在4.2版本,包含了$$NOW,这是一个在聚合管道可以访问变量,它返回是用ISODate格式表示的当前时间。

    2.5K10

    MongoDB 4.2 正式发布,支持分布式事务!

    文章转载自 OSCHINA 社区 [http://www.oschina.net] MongoDB 4.2 正式发布了,MongoDB Server 4.2 提高了现代事务和分析数据平台技术水平。...4.2 主要重点包括: 1、分布式事务 MongoDB 多文档 ACID 从副本集扩展到共享集群,能够为更广泛用例服务 2、按需物化视图使用新 $Merge 运算符,在集合缓存大型聚合输出是一种常见模式...只需定义一个过滤器,它将自动索引集合中所有匹配字段、子文档和数组 4、MongoDB 查询语言增强功能,如更有表现力更新、新数学运算符和扩展 regex 支持。...此版本 update 和 findAndModify 命令可以引用现有字段,并加入聚合管道,以获得更强表现力 5、可还原读写,降低了编写处理临时集群故障代码复杂性 客户端字段级加密(FLE,Client-side...使用 FLE,可以选择性地保护文档敏感字段,每个字段都使用自己密钥加密,并在客户端上无缝解密。

    2.2K30

    MongoDB 4.2 亮点功能之——按需式物化视图

    #开发人员#MongoDB 4.2 $merge,又称按需式物化视图,是MongoDB4.2最强大新增功能之一。 按需式物化视图亮点体现在哪里?...至少$out操作是原子级,它构建了一个临时集合,而且,只有在聚合管道完成工作后才进行交换。 如果我们只想更新生成结果集而非对其完全重建,该怎么做呢?4.2版本会提供一个$merge命令。...然而,它还不只是简单地整个结果集全部写出,它使用唯一结果标识_id与集合现有的结果相匹配。但只有在默认情况下才使用_id。使用on属性,可以使用任意具有唯一值字段。...如果匹配上_id,在默认情况下,$merge执行阶段提取新结果文档以及集合结果文档,合并这两个文档,生成一个包含它们所有字段复合文档。如果没有匹配上_id,则将插入新结果文档。...结果如下所示: 如果我们第一次运行,检查得到结果: 进入数据库,几张床添加到西班牙物业并重新执行聚合: 你会看到西班牙增加了4张床,时间戳也更新了。

    1.9K10

    索引系列:2dsphere索引

    MongoDB Manual (Version 4.2)> Indexes > 2dsphere Indexes No 1 概述 2dsphere索引支持计算类似地球球体上几何形状查询。...版本3是在MongoDB 3.2及更高版本创建2dsphere索引时默认版本版本 2 MongoDB 2.6引入了2dsphere索引版本2。...版本2是在MongoDB 2.6和3.0系列创建2dsphere索引时默认版本。...如果文档缺少2dsphere索引所在字段(或者该字段为null或空数组),则MongoDB不会将文档条目添加到索引。对于插入,MongoDB会插入文档,但不添加到2dsphere索引。...如果您尝试插入一个在2dsphere索引字段包含非几何数据文档,或者在一个索引字段包含非几何数据集合上构建2dsphere索引,该操作失败。

    3K10

    深入MongoDB4.2新特性:字段级加密

    应用程序可以在通过网络数据传输到服务器之前提前加密Document文档某些字段,比如商品价格Price,或者用户账号存款余额。...第三方公司解密数据加载到未经授权各方可以访问不安全存储区。 对于上面的每种情况,具有MongoDB群集或主机特权访问权限用户都可以绕过加密来读取私有的机密数据。...通过加密配置客户端对集群所有读/写操作都将使用预定义自动加密规则自动进行加密和解密。 之前读和写操作相关代码不需要额外修改。 MongoDB客户端字段级加密仅支持加密文档单个字段。...4.2驱动程序使用为客户端指定自动加密规则来识别加密字段及其关联加密密钥。 对于写操作,4.2驱动程序在写入MongoDB数据库之前加密字段值。...对于读取操作,4.2驱动程序在发出读取操作之前加密查询字段值。 4.2仅当客户端可以访问用于保护字段加密密钥时,驱动程序才能解密文档返回加密值。

    4.5K30

    这里有数据库一点新资讯!

    3.基于分布式事务功能增强 得益于分布式事务推出,MongoDB 4.2在新版本对数据库功能进行了增强,主要有以下3个方面: (1)取消事务大小限制:4.2之前事务,最大只支持总共16MB...在4.2版本MongoDB又推出了一系列查询语句进一步增强了其数据查询能力。下面我们逐一介绍这些功能。...在4.2版本MongoDB支持创建“物化”视图,物化视图会在创建时对查询到数据进行存储(需用户指定表名),并支持手动刷新。...2.通配符索引 MongoDB支持对单个字段建立索引,但表字段不明确情况下,用户可能不知道表哪些字段可以创建索引,这时就可以使用4.2版本提供通配符索引来解决这个问题。...在4.2版本MongoDB通过对主从切换时间优化以及连接保持功能,不仅切主时间大幅降低,并且在切主后,仍会自动主节点上请求进行平移,实现切主操作热更新。

    53560

    MongoDB创建与删除索引对业务影响案例

    首先祝大家节日快乐, 利用放假时间把之前案例整理下,希望对大家有帮助,如有疑问可以留言区或者私信沟通。...4.2之前版本后台创建索引变成前台 4.2版本创建索引造成DB几分钟不能写 3.6版本创建索引后删除索引造成备库无法登录 【4.2之前版本后台创建索引变成前台】 MongoDB 4.2之前版本分为前台与后台...】 【现象描述】 MongoDB 3.6.14版本集群,由于业务规则发生变化,需要创建索引,主要为了新老业务并存,提升查询以及聚合性能,在mongos中使用后台创建组合索引,大约2小时创建完成后立即发现索引字段写错...2、4.2版本之前dropIndex是database exclusive lock),既然db锁,为什么会阻塞admin登录admin,因为Secondary mongod instances block.... 3、[如何解决问题] 1、【等待备库创建完成索引后在主库删除索引】 4.2版本之前使用后台完成创建索引后,等待所有从库创建后,再执行删除索引. 2、【升级版本4.2版本

    1.4K20

    MongoDBmongodb4.4版本新特性

    转载自:https://mongoing.com/archives/75020 MongoDB 4.4 作为每年一度版本更新,已经在 7.30 号正式宣布 GA,不像之前版本,总是有一些重磅 Feature...发布,比如 3.6 Change Stream & Causal Consistency,4.0 多文档事务,4.2 分布式事务,这次 4.4 版本更像是一个维护性版本,而且是一个用户期待已久维护性版本...在 4.0 及之前版本,集合选定 Shard Key 及其对应 Value 都是不能更改,在 4.2 版本,虽然可以修改 Shard Key Value,但是数据跨 Shard 迁移以及基于分布式事务实现机制导致性能开销很大...1.3 Compound Hashed Shard Keys 在 4.4 之前版本,只能指定单字段哈希片键,原因是此时 MongoDB 不支持复合哈希索引,这样导致结果是,很容易出现集合数据在分片上分布不均...在没有「复合哈希片键」支持情况下,只能由业务对需要字段提前计算哈希值,存储到文档某个特殊字段,然后再通过「范围分片」方式指定这个预先计算出哈希值特殊字段及其他字段作为片键来解决上述问题。

    3.2K21

    如何在CVM上同步自建数据库数据?

    本教程使用v0.5.2,这是编写本文时最新版本二进制文件下载到您主目录。...我们为其命名为my_application use my_application 在MongoDB,您不需要创建数据库或集合。一旦开始数据添加到您按名称选择数据库,就会自动创建该数据库。...在我们使用示例,两者都使用默认设置在本地托管,但如果您使用现有MongoDB或Elasticsearch实例,请确保自定义这些选项。...第四步、创建变换器 顾名思义,变换器在源数据加载到接收器之前修改源数据。例如,它们允许您添加新字段,删除字段或更改字段数据。Transporter附带一些预定义变换器以及对定制变换器支持。...使用goja函数,我们使用其相对路径指定变换器文件名。 保存并关闭文件。在我们重新运行通道以测试变换器之前,让我们从之前测试清除Elasticsearch现有数据。

    1.5K120

    MongoDB 从4.4到7.0各个版本特性概览

    版本,您可以通过refineCollectionShardKey命令给现有的Shard Key增加一个或多个Suffix Field来改善现有的文档在Chunk上分布问题。...参考代码: db.adminCommand( { setParameter: 1, readHedgingMode: "on" } ) 同步建索引 4.4 之前版本,索引创建需要在主库完成之后...当您调用reshardCollection命令时,MongoDB会克隆现有集合,然后现有集合中所有oplog应用到新集合,当所有oplog被使用后,MongoDB会自动切换到新集合,并在后台删除旧集合...引入针对时空数据地理位置索引(Geo-Indexing),地理信息添加到时序数据,有助于更好地分析涉及距离和位置场景。...变更流 支持查看变更前视图(Pre-image)。 说明 MongoDB 6.0之前版本仅支持查看变更后视图,从MongoDB 6.0版本开始,支持查看变更前后视图。

    8710

    在Windows上安装社区版MongoDB

    注意 如要安装其他版本MongoDB,请参阅版本文档。如要安装以前版本,请参阅3.6版教程。...生产笔记 在生产环境中部署MongoDB之前,请考虑 生产注释文档。 安装社区版MongoDB 注意 您还可以使用完全托管数据库服务Atlas在微软云(Azure)上启动MongoDB。...如果没有,请选择“ Server”,然后单击“ MongoDB Community Server”选项。 b. 在Version下拉列表,选择最新MongoDB Server 4.0版本。 c....升级完整版本系列(例如4.0到4.2)需要重新安装。 MongoDB二进制文件添加到系统 本教程所有命令行示例提供都是MongoDB二进制文件绝对路径。...您可以C:\ProgramFiles\MongoDB\Server\4.0\bin添加到系统路径,然后省略MongoDB二进制文件完整路径。

    2.8K40

    MONGODB 加索引 大内存 与连锁思维

    并且这样处理方式在后台处理,不会对现有的系统产生锁和任务无法处理问题,缺点就是稍微比前台操作耗时一点。...==undefined) print(op.msg) }) 在MONGODB 4.2 系统上,在构建过程开始和结束阶段,索引构建仅对被索引集合获取独占锁,以保护元数据更改。...mongodb4.2 系统应该是已经抛弃了 background参数来创建搜索,根据一代比一代强想法,自然是 background 有一些需要改进地方,新版本才会进行变动。...作为复制集,添加索引方式也是以命令方式推送到从节点,但如果是巨大collection则很多建议是,需要以特殊方式来进行索引添加,这点类似有些 MYSQL 大表添加索引或字段一个过程。...1 节点从集群中分离2 在分离节点添加索引3 节点在此加入到集群4 添加索引从节点替换主节点5 周而复始,直到索引集群节点都添加了索引 当然你要注意你时间窗口,集群离开时间不要超过

    2.5K10

    MongoDB 分片集群部署

    1.2 分片键 分片键是集合每个文档中都存在索引字段或索引复合字段MongoDB分片键值划分为多个块,并将这些块均匀地分布在各个分片上。...从 MongoDB 4.2 开始,可以更新文档分片键值,除非分片键字段是不可变 id 字段。 1.3 平衡 平衡器是管理数据块迁移后台进程。平衡器可以从群集中任何查询路由器运行。...1.4 从集群添加和删除分片 分片添加到集群会导致不平衡,当 MongoDB立即开始数据迁移到新地分片时,集群平衡可能需要一段时间. 删除分片时,平衡器所有块从一共分片迁移到其他分片。...192.168.150.123 MongoDB 版本采用是:5.0.3。...:27020 --bind_ip localhost,192.168.150.232 --logpath /data/mongodb/mongos/mongos.log --fork 2.6 分片副本集添加到集群

    1.4K30

    MongoDB管道操作符(一)

    MongoDB2.2版本也引入了新数据聚合框架,一个文档可以经过多个节点组成管道,每个节点都有自己特殊功能,比如文档分组、文档过滤等,每一个节点都会接受一连串文档,对这些文档做一些类型转换,然后转换后文档传递给下一个节点...表示不要该字段,也可以对返回字段进行重命名,比如title改为articleTitle,如下: db.sang_collect.aggregate({$project:{"articleTitle"...:"$title"}}) 不过这里有一个问题需要注意,如果原字段上有索引,重命名之后字段上就没有索引了,因此最好在重命名之前使用索引。...$dateToString是MongoDB3.0+功能。格式化字符还有以下几种: ?...好了,MongoDB管道操作符我们就先说到这里,下篇文章继续,小伙伴们有问题欢迎留言讨论。 参考资料: 1.《MongoDB权威指南第2版》 2.mongodb聚合利用日期分组

    1.5K50

    MongoDB 4.2正式上线,为您生产环境部署保驾护航

    现在4.2版本正式上线,并为生产环境部署做好了准备。 “MongoDB 4.2经受了100,000多个运行实例考验,表现强劲。”...通配符索引功能 使高度异构集合(例如,产品目录)建模工作变得简单自然,同时,不会对索引支持功能造成很大破坏。你可以简单定义一个过滤器,它会自动对集合所有匹配字段、子文档和数组进行索引。...作为MongoDB 4.2一部分,客户端字段级加密(FLE)功能已发布Beta版,这个功能可以让你有选择性地保护文档敏感字段,每个字段都用自己秘钥进行加密,并可在客户端无缝解密。...如何试用MongoDB 4.2版本呢? 最快捷、方便方式是在MongoDB Atlas上部署一个集群。...在网站上你可以获得价值200美元免费试用,代码是MONGODB4.2,有效期截至2019年底。 或者,你也可以下载4.2版本并在自己基础设施上运行。

    1.1K30

    使用模式构建:文档版本控制模式

    文档版本控制模式 这种模式解决了这样一个问题:希望可以在不引入第二个管理系统情况下保留MongoDB某些文档版本。为此,我们在每个文档添加一个字段,以便跟踪文档版本。...当客户更改了受保具体项目时,这一信息需要随之更新,而同时之前历史记录也需要保留。这在业主或承租人这样保单相当常见。...当客户购买新项目并希望将其添加到其保单时,将使用current_policy文档创建一个新policy_revision文档。...随后,文档版本字段将会递增以标识其为最新版本,并将客户更改添至其中。 ? ? 最新版本存储在current_policies集合,而旧版本写入policy_revisions集合。...这些保存在current_policies集合,并且在进行更改时,policy_revisions集合保留更改历史记录。 文档版本控制模式相对容易实现。

    1K20

    一文读懂MongoDB事务处理

    使用针对MongoDB部署版本更新MongoDB驱动程序。对于MongoDB 4.2部署(副本集和分片集群上事务,客户端必须使用为MongoDB 4.2更新MongoDB驱动程序。...在MongoDB 4.2及更早版本,你无法在事务创建集合。如果在事务内部运行会导致文档插入写操作(例如insert或带有upsert: true更新操作),必须在已存在集合上才能执行。...在4.2版本MongoDB引入了分布式事务,增加了对分片集群上多文档事务支持,并合并了对副本集上多文档事务现有支持。...对于事务: 可以在现有集合上指定读/写(CRUD)操作。有关CRUD操作列表,请参阅CRUD操作。 当使用功能兼容版本(fcv)"4.4"或更高版本时,可以在事务创建集合和索引。...信息操作 ---- 在4.4版本变更。 下列这些操作在事务是不被允许: 影响数据库catalog操作,例如在创建或删除集合和索引时使用"4.2"或更低功能兼容版本(fcv)。

    2.6K20
    领券