如何使用pymongo创建MongoDB Time Series Collection
要通过pymongo创建时序集合,首先需要满足版本要求:pymongo版本≥3.12,且MongoDB服务端版本≥5.0。
时序集合无法像普通集合一样插入数据时隐式创建,必须通过create_collection方法显式声明,你代码中空缺的逻辑可以替换为显式创建集合的逻辑,完整修改后的代码如下:
import pymongo import time from datetime import datetime client = pymongo.MongoClient() db = client['time-series-db'] collection_name = 'time-series-col' # 先判断集合是否存在,不存在则显式创建时序集合 if collection_name not in db.list_collection_names(): db.create_collection( collection_name, timeseries={ 'timeField': 'timestamp', # 对应你数据里存储时间戳的字段名 # 可选参数,根据实际需求添加 # 'metaField': 'metadata', # 存储元数据的字段名 # 'granularity': 'seconds' # 数据时间粒度,默认秒 } ) col = db[collection_name] js = { "1": "A", "2": "B", "3": "C", "4": "D", "5": "E", } # 创建时序集合要求的BSON日期类型时间字段 ts = time.time() js['timestamp'] = datetime.utcfromtimestamp(ts) col.insert_one(js)
参数说明:
timeField:必填参数,指定时序数据中存储时间戳的字段名,字段值必须为BSON日期类型,和示例中插入的timestamp字段对应即可metaField:可选参数,指定存储元数据的字段,元数据一般为不随时间频繁变化的标签类数据,比如设备ID、监测点类型等granularity:可选参数,设置时序数据的采集时间粒度,可选值为seconds、minutes、hours,和实际采集频率匹配可以优化存储和查询性能
内容的提问来源于stack exchange,提问作者koyamashinji
相关产品推荐
相关产品推荐

