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

Beanie ODM将自定义id字段误解析为MongoDB的_id(ObjectID)问题求助

Beanie ODM将自定义id字段误解析为MongoDB的_id(ObjectID)问题求助

大家好,我在使用Beanie ODM开发FastAPI应用时遇到了一个头疼的问题,想请教下社区的各位大佬。

我的MongoDB集合里有一个名为id的字符串类型字段,同时集合还保留着MongoDB默认的_id字段。由于一些业务和数据库层面的限制,我没办法修改这个自定义id字段的名称。但现在出现了一个问题:当我插入包含{'id': 'some string'}的文档时,这个自定义的id字段会直接覆盖掉MongoDB默认的_id字段,导致后续查询文档时触发验证错误。

最开始我定义的模型是这样的:

from typing import Optional
from beanie import Document
from pymongo.objectid import ObjectId

class Demo(Document):
    id: Optional[str] = None  

    class Settings:
        name = 'some_collection'

后来我想着是不是显式声明_id字段就能解决问题,于是修改了模型,但结果还是一样:

from typing import Optional
from beanie import Document
from pymongo.objectid import ObjectId

class Demo(Document):
    _id: Optional[ObjectId] = None
    id: Optional[str] = None  

    class Settings:
        name = 'some_collection'

有没有办法让Beanie正确区分这两个字段,不要把自定义的id映射到MongoDB的_id上呢?希望能得到大家的帮助,谢谢!

备注:内容来源于stack exchange,提问作者Siddhant Adhav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 07:53:09