Я пытаюсь выяснить, в чем разница между ORM и ODM, насколько я понимаю концепцию, ORM (Object Relational Mapper) отображает отношения между данными, где ODM (Object Document Mapper) работает с документами. Прав ли я, предполагая, что mySQL является примером ORM, а MongoDB является примером ODM?
Как я уверен, вы можете видеть, я не слишком знаком с теорией концепции. Может ли кто-нибудь прояснить разницу между ними?
ORM отображается между объектной моделью и реляционной базой данных. ODM сопоставляет объектную модель и базу данных документов. MySQL - это не ORM, это реляционная база данных, точнее, база данных SQL. MongoDB - это не ODM, это база данных документов.
источник
В сущности, ORM использует драйвер базы данных SQL, такой как ODBC, JDBC или OLEDB, для перевода нотации объекта в реляционную нотацию, а ODM использует API JSON или JSONB для перевода нотации объекта в нотацию документа.
Есть разные виды реализаций под капотом.
PS: JSONB - это нотация текстового документа JSON, хранящаяся в двоичном формате, используемом MongoDB.
источник
Mongoose является хорошим примером ODM (Object Data Model) для MongoDB, в которой вы можете напрямую выполнять операции с объектами, и это переводится в соответствующий запрос и схему. Это можно найти здесь на https://mongoosejs.com/
источник