MongoDB - 可用于 MongoDB 的不同 ORM 工具的比较

Posted

技术标签:

【中文标题】MongoDB - 可用于 MongoDB 的不同 ORM 工具的比较【英文标题】:MongoDB - Comparison across different ORM tools which can be used for MongoDB 【发布时间】:2016-12-05 10:24:57 【问题描述】:

我必须在我当前使用 MongoDB 的项目(基于 Java)中集成 ORM 框架。任何人都可以让我知道以下可用框架的比较或优缺点(至少对于 5 个最重要的框架,如果不是全部),以便我可以决定将哪一个用于我的项目。

1. Morphia. Type-Safe Wrapper with DAO/Datastore abstractions.
2. Spring MongoDB. Provides Spring users with a familiar data access features including rich POJO mapping.
3. Morphium. Feature-rich POJO Mapper including features like declarative caching, cluster awareness, validation, partial updates supports aggregation framework.
4. Mungbean (w/clojure support).
5. DataNucleus JPA/JDO. JPA/JDO wrapper
6. lib-mongomapper. JavaBean Mapper (No annotations).
7. MongoJack. Uses jackson (annotations) to map to/from POJOs and has a simple wrapper around DBCollection to simply this.
8. Kundera. JPA compliant ORM. Works with multiple datastores.
9. MongoFS. Enhanced file storage library with support for file compression, encryption, and Zip file expansion. Can be used on top of a GridFS-compatible bucket.
9. Jongo. Query in Java as in mongo shell (using strings), unmarshall results into Java objects (using Jackson)
10. MongoLink. Object Document Mapper (ODM.) Uses a plain java DSL for mapping declaration.
11. Hibernate OGM. Provides Java Persistence support for MongoDB.
12. Morphix. Lightweight, easy-to-use POJO mapper, with object caching and lifecycle methods.

【问题讨论】:

你有什么要求? 1. CRUD 操作 2. 高性能 3. 易于携带 4. 可测试 这些是非常一般的要求。我很确定所有 api 都是围绕这些构建的。您可以从上面的任何 API 开始,如果您有更具体的要求,请添加到帖子中。 我会推荐 Morphia,因为它对于 bulk 操作有非常好的性能(甚至比 Mongo 原生驱动更好)!可移植性和可测试性不是好的标准,因为所有这些库在这些方面都很好! 【参考方案1】:

这取决于您在应用程序中执行的操作以及您对 MongoDB 的熟悉程度。

我通常使用轻量级库,直到我看到重量级库被广泛使用。

如果您使用 Spring 框架,请使用 Spring Data,否则我会使用 jongo,它非常强大,可以让您像 mongo shell 一样运行查询。它确实以没有太多抽象为代价,并且您的应用程序需要繁重的工作。

【讨论】:

以上是关于MongoDB - 可用于 MongoDB 的不同 ORM 工具的比较的主要内容,如果未能解决你的问题,请参考以下文章

用于不同类型帖子/文章的 Mongodb 模式 [关闭]

有哪些类似于 Active Record 的 ORM 可用于 MongoDB 的 php 实现?

快速搭建可用于实战的koa2+mongodb框架

用于报告外部数据库的 MongoDB

用于 MongoDB 的 solr 数据导入处理程序

MongoDB存储引擎