mongodb Orms,ODM和库
#orm #ruby #mongodb #odm

尽管开发人员始终能够手动编写复杂的查询以与数据库进行交互,但这种方法可能是乏味且容易出错的。Object-Relational Mappersâ(或ORMS)改善了开发人员的经验,因为他们完成了多个有意义的任务:

  • 通过抽象编写RAW SQL或数据库查询语言的需要来促进数据库和应用程序之间的交互。
  • 管理数据序列化/避免对象。
  • 执行模式。

因此,虽然MongoDB确实提供了惯用的API和大多数编程语言的助手,但有时需要更高的抽象。开发人员习惯于以声明性的方式与数据进行交互(c#的linq,Ruby的ActivereCord等),ORM通过允许开发人员与数据作为对象进行交互来促进代码可维护性和重复使用。

MongoDB提供了许多类似Orm的图书馆,我们的community和合作伙伴也有!这些有时被称为ODM(对象文档映射器),因为MongoDB不是关系数据库管理系统。但是,它们存在与ORMS相同的问题,并且可以互换使用术语。

以下是许多编程语言的最佳mongodb orm或ODM库的一些示例,包括Ruby,Python,Java,Node.js和Php。

豆豆

Beanie是基于Abiaoqian 4(异步的MongoDB驱动程序)和Pydantic的异步Python对象图案映射器(ODM)和Pydantic

使用Beanie时,每个数据库集合都有一个用于与该集合交互的相应文档。除了检索数据外,Beanie还允许您从集合中添加,更新和删除文档。 Beanie通过删除样板代码为您节省了时间,它可以帮助您专注于实际重要的应用程序。

有关更多信息,请参见Beanie documentation

教义

学说是php mongodb orm,即使它称为ODM。该库为PHP对象提供了PHP对象映射功能和透明的持久性,以及用于映射嵌入或引用文档的机制。它还可以在不同数据库中的PHP文档之间创建参考,并与Gridfs Buckets一起使用。

有关更多信息,请参见Doctrine MongoDB ODM documentation

牛角

大多数基于Ruby的应用程序都是使用Ruby on Rails框架构建的。结果,Rails的Active Record实施,公约,CRUD API和回调机制是Ruby开发人员的第二天性。因此,就Ruby的MongoDB ORM而言,Mongoid ODM在可能的情况下提供了API均衡,以确保开发人员使用Rails应用程序的运作,并且使用MongoDB可以使用他们已经熟悉的方法和机制来做到这一点。

有关更多信息,请参见Mongoid documentation

猫鼬

如果您为nodejs和mongodb寻求ORM,那就不过是猫鼬了。此基于Node.js的对象数据建模(ODM)库类似于对象关系映射器(ORM),例如SQLAlchemy。 Mongoose旨在解决的问题是允许开发人员在应用层上执行特定的模式。除了执行模式外,Mongoose还提供各种挂钩,模型验证和其他旨在使MongoDB更易于合作的功能。

有关更多信息,请参见Mongoose documentationMongoDB & Mongoose: Compatibility and Comparison

Mongoengine

Mongoengine是MongoDB的Python Orm。它以文档对象映射器为品牌,使用了一个简单的声明性API,类似于Django Orm。

它是在2015年首次作为开源项目发布的,当前版本是在PyMongo的顶部建造的,MongoDB的官方python驱动程序。

有关更多信息,请参见MongoEngine documentation

Prisma

prisma是node.js和打字稿的new kind of ORM,与传统的ORM从根本上有所不同。借助Prisma,您可以在声明性的Prisma schema中定义模型,该模型是您数据库模式的单一真实来源和编程语言中的模型。 Prisma客户端将以类型安全的方式读取和写入数据,而无需管理复杂模型实例的开销。这使得查询数据的过程变得更加自然和更可预测,因为Prisma客户端始终返回普通的JavaScript对象。

支持MongoDB是自Prisma Orm初始版本以来最受要求的功能之一,并在版本3.12中添加。

有关更多信息,请参见Prisma & MongoDB

春季数据mongoDB

如果您为MongoDB寻求Java Orm,那么MongoDB的Spring Data是Java开发人员最受欢迎的选择。 Spring Data项目为新数据存储提供了一个熟悉且一致的基于春季的编程模型,同时保留商店特定的功能和功能。

Java开发人员将受益的弹簧数据的关键功能领域是以POJO为中心的模型,用于与MongoDB DBCollection交互并轻松编写存储库式数据访问层。

有关更多信息,请参见Spring Data MongoDB documentationSpring Boot Integration with MongoDB Tutorial

去建造很棒的东西!

虽然不是目前可用的可用mongodb orm和ODM库的详尽列表,但上面的条目应该使您更自然,有效地使用MongoDB开始使用MongoDB。

如果您寻求帮助或有任何反馈不愿参与我们的Community Forums