1 Introduction - Reference Documentation
Authors: Graeme Rocher, Burt Beckwith
Version: 1.0.0.GA
1 Introduction
MongoDB bridges the gap between key-value stores (which are fast and highly scalable) and traditional RDBMS systems (which provide rich queries and deep functionality).MongoDB (from "humongous") is a scalable, high-performance, open source, document-oriented database.This project aims to provide an object-mapping layer on top of Mongo to ease common activities such as:- Marshalling from Mongo to Groovy/Java types and back again
- Support for GORM dynamic finders, criteria and named queries
- Session-managed transactions
- Validating domain instances backed by the Mongo datastore
1.1 Compatibility with GORM for Hibernate
This implementation tries to be as compatible as possible with GORM for Hibernate. In general you can refer to the GORM documentation and the "Domain Classes" section of the reference guide (see the left nav) for usage information.The following key features are supported by GORM for Mongo:- Simple persistence methods
- Dynamic finders
- Criteria queries
- Named queries
- Inheritance
- Embedded types
- Query by example
- HQL queries
- Dirty checking methods
- Composite primary keys
- Many-to-many associations (these can be modelled with a mapping class)
- Any direct interaction with the Hibernate API
- Custom Hibernate user types
1.2 Release Notes
Below are the details of the changes across releases:1.0 GA
- Bug fixes
1.0 RC5
- Support for direct links instead of DBRefs with reference:false in the mapping
- Support for defining Mongo basic types as properties of a domain (Binary, DBObject etc.)
1.0 RC4
- Bug fixes
1.0 RC3
- Easy conversion of DBObject to entity methods added
1.0 RC1 and RC2
- Support for querying embedded associations
- Support for hint query modifier
- Support for assigned identifiers
1.0 Milestone 7
- Support for hasOne associations
- Support for custom user types
- Associations now linked via DBRef
1.0 Milestone 6
- Support for embedded collections of Mongo domain classes
1.0 Milestone 5
- Remaining GORM events (beforeLoad, afterLoad)
- Optimistic locking via versioning
- Services can now be made transactional for Mongo only via transactional = "mongo"
1.0 Milestone 4
- Bug fixes and minor improvements
1.0 Milestone 3
- Bug fixes and minor improvements
1.0 Milestone 2
Features added in 1.0 Milestone 2:- Embedded types
- Support for Maps and Lists
- Geospacial Indexing
- Schemaless Domain Models (Dynamic Attributes)
- Custom Index Attributes
1.0 Milestone 1
Features added in 1.0 Milestone 1:- Dynamic finders
- Criteria queries
- Named queries
- Support for GMongo as a lower level API