MongoDB时间序列集合为何未合并同元数据的插入文档?
MongoDB时间序列集合未合并文档的原因
你遇到的情况核心在于MongoDB时间序列集合的合并规则:只有相同元数据且时间落在同一个桶时间窗口内的记录,才会被合并到同一个文档(桶)中,并非所有同元数据的记录都会自动合并成单文档。
针对你的场景具体分析:
- 你创建集合时指定了
granularity: "hours",这会让MongoDB以1小时作为每个桶的时间窗口范围。 - 你插入的12条数据的时间戳分别是00:00、04:00、08:00等不同小时的整点,每条数据的时间都属于独立的1小时窗口,没有任何两条数据的时间重叠在同一个小时内。
- 因此每条数据都会单独生成一个桶文档,最终通过
db.weather.countDocuments({})查询到的文档数和插入数完全一致。
如果想要实现同元数据记录的合并,可以尝试两种方式:
- 调整
granularity为更大的时间单位,比如"days",此时每个桶覆盖1天的时间范围,你插入的两天数据会被合并为2个桶文档; - 插入多条时间落在同一个小时内的同元数据记录,这些记录会被自动合并到同一个桶文档中。
内容的提问来源于stack exchange,提问作者Yogesh Sonawane
相关产品推荐
相关产品推荐

