我是 MongoEngine 的新手,看起来我们需要从 mongoengine
创建类 Document
的子类来对我们的数据库进行建模。我在这里有点担心,因为这违反了 SOLID 原则的依赖倒置。因此,如果我以后需要使用另一个数据库,我将不得不更改我的域模型类,这是我不应该做的。
SQLAlchemy 通过提供漂亮的 classical mapping 克服了这个问题。使用此功能,数据库相关代码与我的域模型分离,因此我实际上不需要担心数据库提供程序,并且如果我需要更改数据库,我可以轻松地抽象出详细信息。
MongoDB 是否有类似的功能,最好是在 MongoEngine 中?
最佳答案
Pymongo官方doc提供了现有 ORM/ODM 和框架的列表,但据我所知,它们都实现了 Active Record Pattern (就像 django ORM 一样),正如您所说,它违反了 SOLID 原则,但对于许多简单的用例来说已经足够好了。
MongoAlchemy 受到 SQLAlchemy 的启发,使用 session 的概念因此它可能更接近您正在寻找的内容,但该项目不再维护。
关于python - MongoEngine 中的经典映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59775022/