Классическое картографирование в MongoEngine - PullRequest
1 голос
/ 16 января 2020

Я новичок в MongoEngine, и похоже, что нам нужно создать подклассы класса Document из mongoengine для моделирования нашей БД. Я немного обеспокоен, потому что это нарушает инверсию зависимости от SOLID принципов. Поэтому, если мне понадобится использовать другую базу данных в более поздний момент времени, мне придется изменить классы моей модели предметной области, чего на самом деле не следует делать.

SQLAlchemy преодолевает это, обеспечивая красивое классическое отображение . Используя это, зависимый от базы данных код отделяется от моей доменной модели, поэтому мне не нужно беспокоиться о поставщике базы данных, и я могу легко абстрагироваться от деталей, если у меня возникнет необходимость изменить базу данных.

Есть ли эквивалент этого для MongoDB, предпочтительно в MongoEngine?

1 Ответ

1 голос
/ 19 января 2020

Pymon go официальный do c предоставляет список существующих ORM / ODM и фреймворков, но, насколько мне известно, все они реализуют шаблон активной записи (просто как django ORM), который, как вы сказали, нарушает принципы SOLID, но достаточно хорош для многих простых случаев использования.

MongoAlchemy, который был вдохновлен SQLAlchemy, использует концепцию session так что это может быть ближе к тому, что вы ищете, но проект больше не поддерживается.

...