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

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

出品|开源中国
文|Travis
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 来记录数组的截断 。
索引