python - MongoEngine 中的经典映射

标签 python mongodb sqlalchemy pymongo mongoengine

我是 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/

相关文章:

python - 数据框对象没有属性

python - 将 SQLAlchemy ORM 分离实体公开为域对象

python - 如何将 SQLAlchemy 的 @hybrid_property 装饰器与 Werkzeug 的 cached_property 装饰器结合起来?

python - 如何在opencv python中将8点分成两部分

python - lambdas Python 中的 If 语句

python - 如何从 Google Plus 企业列表中提取类别?

java - 在 Spring Data MongoDB 中使用 List 参数进行存储库查询

javascript - MongoDB 数据建模性能

mongodb - 如何从返回的组中获取 MongoDB 中的 AVG 值?

python - SQLAlchemy - 将子查询的模式和数据复制到另一个数据库