Librerías de clientes de MongoDB proporciona API y asistentes idiomáticos para la mayoría de los lenguajes de programación, pero algunas aplicaciones se adaptan mejor a una abstracción de mayor nivel. En particular, los desarrolladores pueden estar acostumbrados a interactuar con los datos de manera más declarativa, por ejemplo, usando ActiveRecord para Ruby. Mapeadores Objeto-Relacional (o ORMs) pueden mejorar la experiencia del desarrollador personalizando las interacciones con la base de datos de las siguientes maneras:
Abstraer la necesidad de un languaje del query.
Administrar la serialización/deserialización de datos en objetos.
Aplicando los requisitos del esquema.
Como MongoDB es un sistema de gestión de base de datos no relacional, los ORM a veces se denominan ODM (Mapeadores de Objeto Documento), pero los términos se pueden usar indistintamente en el dominio de MongoDB. MongoDB, nuestra Community y nuestros partners proporcionan varias librerías ODM.
A continuación hay algunos ejemplos de las mejores librerías ODM de MongoDB para una serie de lenguajes de programación, incluidos Ruby, Python, Java, C#, Node.js y PHP.
Ruby
Mongoid
El Mongoid ODM oficial proporciona paridad de API con Rails siempre que sea posible para asegurar a los desarrolladores que están acostumbrados a trabajar con un Ruby on Rails framework pueden utilizar los métodos y mecanismos que ya conocen en ActiveRecord.
Consulte la documentación de Mongoid para obtener más información.
Python
Beanie
Beanie es un ODM en Python asincrónico y de terceros basado en Pydantic. Beanie utiliza documentos correspondientes para interactuar con cada colección de la base de datos y admite agregar, actualizar y borrar documentos. Beanie te ahorra tiempo removiendo el código redundante y te ayuda a centrarte en las partes de tu aplicación que realmente importan.
Consulte la documentación de Beanie para obtener más información.
MongoEngine
MongoEngine es un ORM de Python sincronizado de terceros para MongoDB. Utiliza una API declarativa sencilla y está construido sobre MongoDB PyMongo Driver.
Consulte la documentación de MongoEngine para obtener más información.
Django
El Backend MongoDB de Django es la integración oficial de MongoDB para Django y MongoDB. Esta integración es compatible con muchas funcionalidades principales de Django, incluido el ORM de Django. Traduce los métodos del ORM de Django en equivalentes MongoDB queries, lo que permite a los desarrolladores utilizar la interfaz familiar de Django.
Consulta la Documentación del Backend de MongoDB para Django para obtener más información.
Java
Hibernate ORM
La extensión de MongoDB para Hibernate ORM es la extensión oficial que integra Hibernate ORM con MongoDB.
Hibernate ORM es un framework de mapeo objeto-relacional para aplicaciones Java que mapea clases Java a tablas de bases de datos relacionales. La extensión MongoDB para Hibernate ORM agrega soporte para MongoDB, lo que permite representar e interactuar con datos de MongoDB utilizando las capacidades de mapeo de datos y consultas de Hibernate ORM.
Consulte la documentación de la extensión MongoDB para Hibernate ORM para obtener más información.
Spring Data MongoDB
Spring Data MongoDB es un ORM de Java de terceros para MongoDB. El proyecto Spring Data proporciona un modelo de programación basado en Spring, familiar y consistente, mejorado con características y capacidades específicas de MongoDB. Spring Data MongoDB utiliza un modelo centrado en POJO para interactuar con colecciones y escribir capas de acceso a datos de tipo repositorio.
Consulta la documentación de Spring Data MongoDB o el tutorial de integración de Spring Boot con MongoDB para obtener más información.
.NET/C#
Entity Framework
MongoDB Entity Framework Core proveedor (EF Core proveedor) es la integración oficial para MongoDB y EF Core. Permite a los desarrolladores que utilizan C# en el ecosistema .NET usar Entity Framework Core como su ODM, que proporciona una interfaz API familiar, un paradigma de query (LINQ) y un patrón de diseño.
Consulta la documentación del proveedor de EF Core para obtener más información.
Node.js
Mongoose
Mongoose es una librería de terceros basada en Node.js Librería ODM para MongoDB. Aplica un esquema específico en la capa de aplicación y ofrece una variedad de hooks, validación de modelos y otras funcionalidades.
Para más información acerca de la compatibilidad de Mongoose con MongoDB Server, consulta Compatibilidad de las versiones del servidor MongoDB en la documentación de Mongoose.
Prisma
Prisma es un ODM de terceros para Node.js y Typescript que difiere fundamentalmente de los ORM tradicionales. Utiliza esquemas declarativos de Prisma como única fuente de información para el esquema y los modelos de base de datos. El cliente de Prisma lee y escribe datos con seguridad de tipos y devuelve objetos JavaScript sin formato.
Consulta Prisma & MongoDB para obtener más información.
PHP
Doctrina
Doctrine es un mapeador de datos de objetos (ODM) de MongoDB para PHP de terceros. Esta librería proporciona funcionalidad de mapeo de objetos PHP y persistencia transparente de objetos PHP en MongoDB, así como un mecanismo para mapear documentos incrustados o referenciados. También puede crear referencias entre documentos PHP en diferentes bases de datos y trabajar con buckets de GridFS.
Consulta la documentación Doctrine MongoDB ODM para obtener más información.
Symfony
El ODM de Doctrine MongoDB permite integrar MongoDB con el framework PHP Symfony. El mapeo de objetos de Doctine permite a los desarrolladores aprovechar las ventajas de MongoDB, como el diseño flexible de esquemas y las búsquedas avanzadas, junto con los componentes reutilizables y el diseño web optimizado de Symfony.
Consulta la página de integración de Symfony MongoDB para obtener más información.
Laravel
Laravel MongoDB es la integración oficial de MongoDB y Laravel. Extiende los métodos en la API de PHP Laravel para proporcionar a los desarrolladores la suite completa de funcionalidades de Eloquent y Query Builder de Laravel mientras usan MongoDB como su base de datos. Con este paquete, los desarrolladores de Laravel pueden aprovechar el esquema flexible y las amplias capacidades de MongoDB, manteniendo patrones familiares, relaciones y funcionalidades como consultas, almacenamiento en caché y más.
Consulte la documentación de Laravel MongoDB para obtener más información.