You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:48:00