Prasad Revanaki
Prasad Revanaki

Reputation: 783

MongoDB - Comparison across different ORM tools which can be used for MongoDB

I have to integrate ORM framework in my current project(Java based) which is using MongoDB. Can anyone let me know the comparison or pros/cons of below available frameworks(at least for 5 top most if not possible for all) so that I can decide which one to use for my project.

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.

Upvotes: 2

Views: 1452

Answers (1)

codeman92
codeman92

Reputation: 41

It depends on what you are doing in your application and how comfortable are you with MongoDB .

I use generally lightweight libraries until I see that heavy weight libraries are being used extensively .

If you are using Spring Framework go with Spring Data else I would use jongo which is very powerful in terms of giving you capability to run query like mongo shell . It does come at the cost of not much being abstracted and your application needs to heavy lifting.

Upvotes: 2

Related Questions