时间序列收集限制
此页面描述了使用时间序列集合的限制。
不支持的功能
时间序列集合不支持以下功能:
阿特拉斯设备同步仅当时间序列集合不对称同步时才受支持。有关详细信息,请参阅 启用 Atlas 设备同步。
聚合 $out 和 $merge
您不能使用$out
或$merge
聚合管道阶段将数据从另一个集合添加到时间序列集合。
更新和删除
从 MongoDB 5.1 开始,您可以执行一些删除和更新操作。
删除命令必须满足以下要求:
- 您只能匹配metaField字段值。
- 您的删除命令不得限制要删除的文档数。设置
justOne: false
或使用deleteMany()
方法。
更新命令必须满足以下要求:
- 您只能匹配
metaField
字段值。 - 您只能修改
metaField
字段值。 - 您的更新文档只能包含更新运算符表达式。
- 您的更新命令不得限制要更新的文档数量。设置
multi: true
或使用updateMany()
方法。 - 您的更新命令不得设置upsert: true 。
在 MongoDB 5.0 中,时间序列集合只支持插入操作和读取查询。更新和手动删除操作会导致错误。
要自动删除旧数据,请设置自动删除 (TTL) 。
要从集合中删除所有文档,请使用 drop()
drop 方法删除集合。
时间序列二级索引
MongoDB 6.0 改进了对二级索引的支持。
MongoDB 6.0 及更高版本的时间序列二级索引
从 MongoDB 6.0 开始,您可以为任何字段添加二级索引。
不支持这些索引类型:
不支持TTL索引属性。对于 TTL 删除,请使用expireAfterSeconds 。
您只能在metaField
上使用多键索引类型。
部分支持这些索引属性。您可以创建:
有关从 MongoDB 6.0 开始可用的时间序列二级索引的改进,请参阅 MongoDB 6.0 中的时间序列二级索引。
如果时间序列集合上有二级索引并且您需要降级功能兼容版本 (FCV),则必须首先删除与降级后的 FCV 不兼容的所有二级索引。看。setFeatureCompatibilityVersion
MongoDB 5.0 及更早版本的时间序列二级索引
在 MongoDB 5.0 及更早版本中:
metaField
可以有二级索引。timeField
可以有二级索引。- 如果
metaField
是文档,您可以在文档内的字段上添加二级索引。
TIP
也可以看看:
上限集合
您不能将时间序列集合创建为上限集合。
集合类型的修改
您只能在创建集合时设置集合类型:
- 无法将现有集合转换为时间序列集合。
- 时间序列集合不能转换为不同的集合类型。
要将数据从现有集合移动到时间序列集合,请将数据 迁移到时间序列集合。
修改timeField
和metaField
您只能在创建集合时设置集合的timeField
和metaField
参数。您以后不能修改这些参数。
的修改granularity
设置后granularity
,一次只能增加一级。granularity
可以从"seconds"
到 "minutes"
或从"minutes"
到"hours"
更改。不允许进行其他更改。
要将granularity
from更改"seconds"
为"hours"
,首先增加granularity
to "minutes"
,然后再增加 to "hours"
。
分片
从 MongoDB 5.1(和 5.0.6)开始,您可以创建分片时间序列集合。
在 MongoDB 5.0.6 之前的版本中,您不能对时间序列集合进行分片。
分片管理命令
从 MongoDB 5.2(和 5.1.2、5.0.6)开始,您可以在集合上运行分片管理命令(例如 moveChunk
) 。system.buckets
在 MongoDB 5.0.6 之前的版本中,您不能为分片时间序列集合运行分片管理命令。
片键字段
在对时间序列集合进行分片时,只能在分片键中指定以下字段:
- 这
metaField
- 的子领域
metaField
- 这
timeField
您可以在分片键中指定这些字段的组合。_id
分片键模式中不允许包含其他字段,包括。
当您指定分片键时:
TIP
避免仅将 the指定timeField
为分片键。由于timeField
单调增加,它可能导致所有写入出现在集群内的单个块上。理想情况下,数据均匀分布在块中。
要了解如何最好地选择分片键,请参阅:
重新分片
您不能重新分片时间序列集合。
交易
您不能在事务中写入时间序列集合。
NOTE
事务支持从时间序列集合中读取。
查看限制
时间序列集合是可写的非物化视图。视图的限制适用于时间序列集合。
- 您不能从时间序列存储桶集合命名空间(即以 为前缀的集合
system.buckets
)创建视图。
原文链接 -https://www.mongodb.com/docs/manual/core/timeseries/timeseries-limitations/
译者:陆文龙