J'essaie de comprendre quelle est la différence entre ORM et ODM, pour autant que je comprends le concept, ORM (Object Relational Mapper) cartographie les relations entre les données, alors que ODM (Object Document Mapper) traite des documents. Ai-je raison de supposer que mySQL est un exemple d'ORM et MongoDB est un exemple d'ODM?
Comme je suis sûr que vous pouvez le voir, je ne suis pas trop familier avec la théorie du concept. Quelqu'un pourrait-il clarifier les différences entre les deux?
Un ORM mappe entre un modèle objet et une base de données relationnelle. Un ODM mappe entre un modèle objet et une base de données de documents. MySQL n'est pas un ORM, c'est une base de données relationnelle, plus précisément une base de données SQL. MongoDB n'est pas un ODM, c'est une base de données de documents.
la source
Essentiellement, un ORM utilise un pilote de base de données SQL comme ODBC, JDBC ou OLEDB pour traduire la notation d'objet en notation relationnelle et un ODM utilise une API JSON ou JSONB pour traduire la notation d'objet en notation de document.
Il existe différents types d'implémentations sous le capot.
PS: JSONB est une notation de document texte JSON stockée dans un format binaire tel qu'utilisé par MongoDB.
la source
Mongoose est un bon exemple d'ODM (Object Data Model) pour MongoDB dans lequel vous pouvez effectuer directement des opérations avec des objets et qui est traduit dans la requête et le schéma appropriés. Il peut être trouvé ici à https://mongoosejs.com/
la source