【发布时间】:2020-07-17 08:38:55
【问题描述】:
有没有办法为 Python 和 MongoDB 提供开箱即用的自动 ODM?对于 Java,MongoDB 驱动程序可以做所有事情:我可以只转储我的自定义类的对象并稍后加载它,驱动程序会自动进行类型检查、映射等,我不必更改我的代码中的任何内容。这对 Python 和 PyMongo、MongoEngine 等是否可行?比如:
class MyClass:
# definition
obj = MyClass()
db.save(obj) # automatically creates JSON
obj = db.findOne({"name": "John Smith"})
【问题讨论】:
-
只要您定义了 Document 类的字段,Mongoengine 就可以为您做到这一点,参见 doc github.com/MongoEngine/mongoengine#examples 中的示例
-
@bagerard 我确实了解 MongoEngine。我想要别的东西,比如 Java 驱动程序:没有 StringFields,没有明确的,只是静默序列化和反序列化。我只想在我的类中使用常规字符串、整数、嵌套对象等,将其保存到 MongoDB 并从中加载。我知道那是不可能的?
-
尝试从 DynamicDocument 继承而不是 DOcument,虽然我不推荐它,但它可能适用于您的用例。在此处查看文档docs.mongoengine.org/guide/defining-documents.html
标签: python mongodb pymongo mongoengine