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
相关产品推荐
相关产品推荐

