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

Python升级至3.12.5后PyMongo create_collection报错问题

Python3.12.5升级后PyMongo创建带选项集合的报错解决

错误原因分析

  • 原代码参数传递错误:create_collection的第二个位置参数是codec_options(用于指定BSON编解码规则),而非集合创建的配置选项。之前Python3.12.4版本中,PyMongo的参数检查逻辑未严格校验该参数类型,升级到3.12.5后类型检查触发,导致报错提示codec_options必须是bson.codec_options.CodecOptions实例。
  • 误用validators参数:MongoDB的集合创建命令仅支持validator(单数)参数用于指定文档校验规则,validators是无效参数,因此触发Atlas的错误提示。

正确创建方式

将集合配置选项通过关键字参数传递,或用**展开字典传入,两种写法如下:

写法一:直接指定关键字参数

self.client = MongoClient(MONGODB_CONNECT)
self.db = self.client[MONGODB_NAME]
self.db.create_collection(
    collection_name,
    timeseries={
        "timeField": "event_time",
        "metaField": "metadata",
        "granularity": "minutes"
    },
    validator=event_validator
)

写法二:展开配置字典

option = {
    "timeseries": {
        "timeField": "event_time",
        "metaField": "metadata",
        "granularity": "minutes"
    },
    "validator": event_validator,
}
self.client = MongoClient(MONGODB_CONNECT)
self.db = self.client[MONGODB_NAME]
self.db.create_collection(collection_name, **option)

内容的提问来源于stack exchange,提问作者Guian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:15:10