MongoEngine中的经典映射

问题描述 投票:1回答:1

我是MongoEngine的新手,看来我们需要从Document创建类mongoengine的子类来对数据库进行建模。我在这里有点担心,因为这违反了SOLID原则中的依赖倒置。因此,如果以后需要使用另一个数据库,则必须更改我本不应该做的域模型类。

SQLAlchemy通过提供漂亮的classical mapping克服了这一问题。使用此方法,数据库相关的代码与我的域模型分开了,因此我真的不需要担心数据库提供程序,并且如果需要更改数据库,可以轻松地将细节抽象出来。

MongoDB是否具有等效功能,最好在MongoEngine中使用?

python mongodb sqlalchemy pymongo mongoengine
1个回答
1
投票

Pymongo的官方doc提供了现有ORM / ODM和框架的列表,但据我所知,它们都实现了Active Record Pattern(就像django ORM一样),正如您所说,这违反了SOLID原则,但足以满足许多简单的用例。

MongoAlchemy,它受到SQLAlchemy的启发,使用了session概念,因此它可能更接近您要查找的内容,但不再维护该项目。

© www.soinside.com 2019 - 2024. All rights reserved.