MongoDB 5.0 正式发布,新增时序集合功能

MongoDB 5.0 正式发布,该版本部分更新内容如下:

时间序列集合

  • MongoDB 5.0 引入了时间序列集合,它有效地存储了一段时期内的测量序列。与普通集合相比,在时间序列集合中存储时间序列数据可以提高查询效率,并减少数据和索引的磁盘使用。

聚合

  • 新的聚合操作符

    MongoDB 5.0 引入了以下聚合操作:

    • $count: $count 在现有管道 $group 阶段和新的 MongoDB 5.0 $setWindowFields 阶段中使用时,提供所有文档的计数。

    • $dateAdd: 将一个 Date 对象按指定的时间单位递增。

    • $dateDiff: 返回两个日期之间的差异。

    • $sampleRate: 添加 $sampleRate 方法,以给定的速度从管道中概率性地选择文档。

    • $rand: 每次调用 $rand 方法时,都会生成一个0到1之间的随机浮点数。新的 $sampleRate 操作是基于 $rand 的。

窗口操作符

  • MongoDB 5.0 引入了 $setWindowFields 管道阶段,允许你在一个集合中的指定跨度的文档上执行操作,称为窗口。该操作根据所选择的窗口操作符返回结果。

一般聚合的改进

  • $expr 操作符:比较运算符使用索引

    从 MongoDB 5.0 开始,放在 $expr 操作符中的 $eq$lt$lte$gt$gte 操作符可以使用索引来提高性能。

  • $ifNull 表达式接受多个输入表达式

    从 MongoDB 5.0 开始,在返回一个替换表达式之前,你可以为 $ifNull 表达式指定多个输入表达式。

  • 聚合的 let 选项

    从 MongoDB 5.0 开始, aggregate 命令和 db.collection.aggregate() 辅助方法有一个 let 选项,用于指定一个可以在聚合管道的其他地方使用的变量列表。这允许你通过将变量与查询文本分开来提高命令的可读性。

  • $lookup 阶段:简洁的相关子查询

    从 MongoDB 5.0 开始,聚合管道 $lookup 阶段支持简明的相关子查询,改善集合之间的连接。

  • 变更事件输出

    从 MongoDB 5.0 开始,变更事件包含字段 updateDescription.truncatedArrays 来记录数组的截断。

索引

  • 删除了 geoHaystack 索引和 geoSearch 命令

    MongoDB 5.0 删除了废弃的 geoHaystack 索引和 geoSearch 命令。使用带有 $geoNear 的 2d 索引或支持的 geospatial 查询操作符来代替。

    将你的 MongoDB 实例升级到 5.0 并将 featureCompatibilityVersion 设置为 5.0 将删除任何先前存在的 geoHaystack 索引。

  • 新的错误信息

    db.collection.createIndex()db.collection.createIndexes() 操作在选项指定不正确时有新的错误信息。

  • 中断索引构建

    如果副本集中的一个节点在索引构建过程中完全关闭或回滚,索引构建的进度现在会被保存到磁盘上。当服务器重新启动时,索引创建将从保存的位置恢复。

  • reIndex行为改变

    从 MongoDB 5.0 开始,[reIndex](<https://docs.mongodb.com/v5.0/reference/command/reIndex/#mongodb-dbcommand-dbcmd.reIndex>)命令和 [db.collection.reIndex()](<https://docs.mongodb.com/v5.0/reference/method/db.collection.reIndex/#mongodb-method-db.collection.reIndex>)shell 方法只能在独立实例上运行 。

安全

  • 支持配置 TLS 1.3 密码套件

    MongoDB 5.0引入了opensslCipherSuiteConfig参数,以便在使用TLS 1.3加密时,能够配置OpenSSL所支持的密码套件。

完整文档可查看:https://docs.mongodb.com/v5.0/release-notes/5.0/

MongoDB 5.0 正式发布,新增时序集合功能


您可能还会对下面的文章感兴趣: