Docs 菜单
Docs 主页
/ /

ORM、ODM 和库

MongoDB驱动程序为大多数编程语言提供了一致的API 和助手,但某些应用程序适合更高级别的抽象。特别是,开发人员可能习惯以更具声明性的方式与数据进行交互,示例使用 ActiveRecord for Ruby。对象关系映射器(或 ORM)可以通过以下方式改善开发者自定义数据库交互的体验:

  • 抽象化消除对查询语言的需求。

  • 管理数据到对象的序列化/反序列化。

  • 执行模式要求。

由于MongoDB是非非关系型数据库管理系统,因此 ORM 有时称为 ODM(对象文档映射器),但这些术语在MongoDB领域可以互换使用。MongoDB、我们的社区和合作伙伴提供了多个 ODM 库。

以下是适用于多种编程语言(包括Ruby、 Python、 Java、 C#、 Node.js 和PHP )的最佳MongoDB ODM 库的一些示例。

官方 Mongoid ODM 尽可能提供与 Rails 相同的API ,以确保习惯使用Ruby on Rails框架的开发者可以在 ActiveRecord 中使用他们已经熟悉的方法和机制。

有关更多信息,请参阅 Mongoid 文档。

Beanie 是基于Pydantic的第三方异步Python ODM。Beanie 使用相应的文档与每个数据库集合交互,并支持添加、更新和删除文档。Beanie 删除了样板代码,从而节省了你的时间,帮助你专注于应用中真正重要的部分。

有关更多信息,请参阅Beanie 文档

MongoEngine 是适用于MongoDB的第三方同步Python ORM。它使用简单的声明性API ,构建在MongoDB PyMongo驱动程序之上。

有关更多信息,请参阅 MongoEngine 文档。

Django MongoDB后端是 Django 和MongoDB的官方MongoDB集成。此集成支持许多 Django 核心功能,包括 Django ORM。它将 Django ORM 方法转换为等效的MongoDB查询,允许开发者使用熟悉的 Django 界面。

有关更多信息,请参阅 Django MongoDB后端文档。

Spring Data MongoDB是适用于MongoDB的第三方Java ORM。Spring Data项目提供了一个熟悉且一致的基于 Spring 的编程模型,该模型通过MongoDB特定的特性和功能得到了增强。Spring Data MongoDB使用以 POJO 为中心的模型与集合交互并编写存储库样式的数据访问层。

有关更多信息,请参阅 Spring Data MongoDB文档Spring Boot 与MongoDB集成教程

MongoDB实体框架核心提供程序(EF Core 提供程序)是MongoDB和 EF Core 的官方集成。它允许在.NET生态系统中使用C#的开发者将Entity Framework Core作为他们的 ODM,提供熟悉的API接口、查询范例 (LINQ) 和设计模式。

有关更多信息,请参阅 EF Core提供商文档。

Mongoose是一个基于 Node.js 的第三方MongoDB的 ODM 库。它在应用程序层实施特定模式,并提供各种钩子、模型验证和其他功能。

有关更多信息,请参阅Mongoose文档MongoDB & Mongoose:兼容性和比较

Prisma是适用于 Node.js 和Typescript的第三方 ODM,与传统 ORM 有着本质的区别。它使用声明性Prisma模式作为数据库模式和模型的单一事实来源。Prisma客户端以类型安全的方式读取和写入数据,并返回纯JavaScript对象。

有关更多信息,请参阅Prisma和MongoDB

Doctrine 是第三方PHP MongoDB ODM。该库提供PHP对象映射功能和PHP对象到MongoDB 的透明持久性,以及映射嵌入或引用文档的机制。它还可以在不同数据库中的PHP文档之间创建引用,并使用GridFS存储桶。

有关更多信息,请参阅Doctrine MongoDB ODM 文档

Doctrine MongoDB ODM 可用于将MongoDB与 Symfony PHP框架集成。Doctine 的对象映射使开发人员能够受益于MongoDB功能,例如灵活的模式设计和高级搜索,以及 Symfony 的可重用组件和简化的 Web 设计。

有关更多信息,请参阅Symfony MongoDB集成页面

Laravel MongoDB是MongoDB和 Laravel 的官方集成。它扩展了PHP Laravel API中的方法,为开发者提供了全套 Laravel 的 Eloquent 和查询生成器功能,同时使用MongoDB作为数据存储。有了这个包,Laravel 开发者可以利用 MongoDB 灵活的模式和广泛的功能,同时保持熟悉的模式、关系和功能,如查询、缓存等。

有关更多信息,请参阅Laravel MongoDB文档

后退

Azure Cosmos DB 兼容性

在此页面上