最近一段时间群里经常有人开始问MOGNODB 的问题,我觉得后面会开始在大量写一些MONGODB 的东西,原来从mongodb 3.2开始弄想起来也有6-7年时间了,相比传统的DBA 对于MONGODB 应该是非常了解和熟悉的,但是我错了,截止到现在,传统的DBA 对于MONGODB 一部分人还是一头雾水,时代不同了,不会MOGNODB 的DBA,如同你吃饭,只有刀叉,没有筷子,筷子更简单,更多变,适应的场景和变化更多,所以这是一个必备的技能,REDIS MONGODB MYSQL OR REDIS POSTGRESQL MONGODB 这属于DBA铁三角,不信你可以看看招聘信息。
正文
——————————————————————————————
开发人员正在努力让开源数据库 MongoDB 及其商业服务 MongoDB Atlas 更易于开发人员使用。
“开发人员生活中最困难的部分是处理状态。”MongoDB 云产品副总裁 Andrew Davidson 表示。MongoDB 最初的吸引力在于为开发人员提供了一种更简单的存储、索引和检索文档(而不是将这些工作转换成 SQL)的方式。任何下一代开发平台都需要“满足开发人员所处的环境”,Davidson 辩称。
即将发布的 MongoDB 版本中有许多旨在直接提升开发人员生产力的新功能。该公司将在本周纽约举行的 MongoDB World 会议上讨论所有这些最新增强功能。
以下是旨在帮助改进的新 MongoDB 功能。
- 查询加密(Queryable Encryption):此功能处于预览阶段,提供了查询加密数据的能力,并且整个查询事务都会进行加密,这是 MongoDB 声称行业首次实现的功能。这对于拥有大量敏感数据的组织(如银行、医疗机构和政府)非常有吸引力。这样可以消除开发人员需要成为加密专家的需求,Davidson 表示。 这种端到端客户端加密使用了新颖的加密索引数据结构,被搜索的数据在数据库服务器上始终保持加密状态,包括在内存和 CPU 中。密钥永远不会离开应用程序,并且该公司声称查询速度和整体应用程序性能不会受到新功能的影响。
- 支持时间序列数据(Time Series Data):现在 MongoDB 6.0 支持时间序列数据,这对于监控物理系统、快速移动的金融数据或其他时间导向的数据集非常重要。在时间序列集合中,可以对测量值进行二级索引,并且数据库系统已经优化,以更快地对时间为基础的数据进行排序。 虽然有一些专门针对时间序列数据的数据库(如 InfluxDB),但是根据 Davidson 的说法,许多组织可能不希望为这个特定用途启动一个完整的数据库系统,因为单独的系统在支持和专业知识方面成本更高。
- 集群间同步(Cluster-to-Cluster Synchronization):此功能提供了在各个环境中对 MongoDB 集群进行连续数据同步的能力。它可以与 Atlas 在私有云、本地或边缘环境中配合使用。这为在多个位置使用数据进行测试、分析和备份铺平了道路。
- 更好地支持分析(Analytics):MongoDB 中的分析节点现在可以单独进行扩展,从而实现更好的分配。此外,今年晚些时候还将引入的特性列存索引(Column Store Indexing)可以用于创建和维护用于加速分析查询的专用索引,而无需更改文档结构或将数据复制到另一个系统。
关于 MongoDB Atlas:
- Atlas 的搜索功能使用开源的 Apache Lucene 驱动,现在也通过一个名为 Search Facets 的新功能丰富了功能,允许用户以不同维度更好地浏览和细化搜索结果,实现了倒排索引技术。
- 新功能 Atlas Device Sync 将 Atlas 中的完全托管的后端数据库与流行的移动对象数据库 Realm 连接起来,可以对同步到用户应用程序的数据进行细粒度控制。MongoDB 在2019年收购了 Realm。
- 而 MongoDB Atlas 旨在通过云服务模式使数据库更易于管理,该公司现在还提供更简单的选择,即 Atlas Serverless,现已正式推出,并彻底消除了数据库的配置和扩展任务。用户将按基于计算量的模式进行付费。
同时在MONGNODB 6.0 添加了更新的一些函数功能:
新的聚合操作符 这些新的操作符使您能够将更多的工作推到数据库中,同时减少编写代码或手动操作数据的时间。它们将自动化关键命令和冗长的代码序列,释放开发人员更多的时间来专注于其他任务。
例如,您可以使用像maxN、minN 或 lastN 这样的操作符在数据集中轻松发现重要的值。此外,您还可以使用像 sortArray 这样的操作符直接在聚合管道中对数组的元素进行排序。
下面是所有新操作符的列表:
- $bottom: 根据指定的排序顺序返回组中的最后一个元素
- $bottomN: 根据指定的排序顺序返回组中的最后 n 个元素的聚合
- firstN: 返回组中的前 n 个元素的聚合。与 firstN 数组操作符不同
- firstN(数组操作符): 从数组的开头返回指定数量的元素。与 firstN 累加器不同
- lastN: 返回组中的最后 n 个元素的聚合。与 lastN 数组操作符不同
- lastN(数组操作符): 从数组的末尾返回指定数量的元素。与 lastN 累加器不同
- $linearFill: 对窗口中的空值和缺失字段进行线性插值,基于周围字段的值 同时MONGODB 还对数据处理产生一些新的概念,如 变更流(Change streams)现在提供了时点前(PIT)和时点后(POT)图像的能力,允许用户在变更流的输出中包含文档在变更前后的状态。 这个功能在许多情况下都很有用。例如,假设一个公司正在跟踪航班时间。如果一架航班延误,系统可以比较延误前后的出发和到达时间的值,并触发对新航班时间表的自动重写,包括整个机组的航班计划。 ———————————————————————————— 这个世界一直是变化的,进步和新的概念和想法层出不穷,MONGODB正在从周边数据库产品,逐渐在一些系统和项目,成为摆脱传统数据库的利器