Хотя разработчики всегда могли вручную писать сложные запросы для взаимодействия с базой данных, этот подход может быть утомительным и подверженным ошибкам. Объектно-реляционные преобразователи (или ORM) улучшают опыт разработчиков, поскольку они выполняют несколько важных задач:

  • Упрощение взаимодействия между базой данных и приложением за счет абстрагирования от необходимости писать необработанный SQL или язык запросов к базе данных.
  • Управление сериализацией/десериализацией данных в объекты.
  • Исполнение схемы.

Итак, несмотря на то, что MongoDB действительно предлагает Драйверы с идиоматическими API и помощниками для большинства языков программирования иногда желательна абстракция более высокого уровня. Разработчики привыкли взаимодействовать с данными более декларативным способом (LINQ для C#, ActiveRecord для Ruby и т. д.), а ORM облегчает сопровождение и повторное использование кода, позволяя разработчикам взаимодействовать с данными как с объектами.

MongoDB предоставляет ряд ORM-подобных библиотек, и наша сообщество и партнеры тоже! Их иногда называют ODM (сопоставители объектных документов), поскольку MongoDB не является системой управления реляционными базами данных. Однако они существуют для решения той же проблемы, что и ORM, и терминология может использоваться взаимозаменяемо.

Ниже приведены некоторые примеры лучших библиотек MongoDB ORM или ODM для ряда языков программирования, включая Ruby, Python, Java, Node.js и PHP.


шапочка

Beanie — это асинхронный объектно-документный преобразователь Python (ODM) для MongoDB, основанный на Мотор (асинхронный драйвер MongoDB) и Пидантический.

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

См. Документация по шапочке Чтобы получить больше информации.


Доктрина

Doctrine — это PHP MongoDB ORM, хотя и называется ODM. Эта библиотека предоставляет функции сопоставления объектов PHP и прозрачное сохранение для объектов PHP в MongoDB, а также механизм сопоставления встроенных или связанных документов. Он также может создавать ссылки между документами PHP в разных базах данных и работать с корзинами GridFS.

См. Документация Doctrine MongoDB ODM Чтобы получить больше информации.


монгоид

Большинство приложений на основе Ruby создаются с использованием Рубин на рельсах рамки. В результате Rails’ Активная запись реализация, соглашения, CRUD API и механизмы обратного вызова являются второй натурой разработчиков Ruby. Итак, что касается MongoDB ORM для Ruby, Mongoid ODM обеспечивает паритет API везде, где это возможно, чтобы гарантировать, что разработчики, работающие с приложением Rails и использующие MongoDB, могут делать это, используя методы и механизмы, с которыми они уже знакомы.

См. Документация монгоидов Чтобы получить больше информации.


Мангуста

Если вы ищете ORM для NodeJS и MongoDB, обратите внимание на Mongoose. Эта библиотека моделирования объектных данных (ODM) на основе Node.js для MongoDB похожа на объектно-реляционное сопоставление (ORM), такое как SQLAlchemy. Проблема, которую Mongoose стремится решить, заключается в том, чтобы позволить разработчикам применять определенную схему на уровне приложения. Помимо применения схемы, Mongoose также предлагает различные хуки, проверку модели и другие функции, призванные упростить работу с MongoDB.

См. Документация по мангусту или же MongoDB и Mongoose: совместимость и сравнение Чтобы получить больше информации.


MongoEngine

MongoEngine — это Python ORM для MongoDB. Он называется Document-Object Mapper и использует простой декларативный API, похожий на Django ORM.

Впервые он был выпущен в 2015 году как проект с открытым исходным кодом, а текущая версия построена на основе PyMongoофициальный драйвер Python от MongoDB.

См. Документация MongoEngine Чтобы получить больше информации.


Призма

Призма — это новый вид ОРМ для Node.js и Typescript, что принципиально отличается от традиционных ORM. С Prisma вы определяете свои модели в декларативном Схема призмы, который служит единственным источником достоверной информации о вашей схеме базы данных и моделях вашего языка программирования. Клиент Prisma будет считывать и записывать данные в вашу базу данных безопасным способом, без дополнительных затрат на управление сложными экземплярами модели. Это делает процесс запроса данных более естественным и предсказуемым, поскольку Prisma Client всегда возвращает простые объекты JavaScript.

Поддержка MongoDB была одной из наиболее востребованных функций с момента первого выпуска Prisma ORM и была добавлена ​​в версии 3.12.

Видеть Призма и MongoDB Чтобы получить больше информации.


Весенние данные MongoDB

Если вы ищете Java ORM для MongoDB, Spring Data для MongoDB — самый популярный выбор среди разработчиков Java. Весенние данные Project предоставляет знакомую и согласованную модель программирования на основе Spring для новых хранилищ данных, сохраняя при этом функции и возможности, характерные для хранилища.

Ключевыми функциональными областями Spring Data MongoDB, от которых выиграют Java-разработчики, являются ориентированная на POJO модель для взаимодействия с MongoDB DBCollection и простота написания уровня доступа к данным в стиле репозитория.

См. Документация Spring Data MongoDB или Интеграция Spring Boot с MongoDB Tutorial Чтобы получить больше информации.


Построй что-нибудь классное!

Хотя это и не исчерпывающий список доступных прямо сейчас библиотек MongoDB ORM и ODM, приведенные выше записи должны позволить вам начать использовать MongoDB на выбранном вами языке более естественным и эффективным образом.

Если вам нужна помощь или у вас есть какие-либо отзывы, не стесняйтесь участвовать в нашей Форумы сообщества.