7. 7
MongoDB Java Spring Data
MongoDB Terminology
RDBMS Mongo DB
Database Database
Table Collection
Row JSON document
Column Field
Index Index
Join Embedded documents & linking
Aggregation (e.g. group by) Aggregation framework
8. 8
MongoDB Java Spring Data
MongoDB Features
• JSON data model with dynamic schemas
• CRUD operations
• Atomic document operations
• Ad hoq Queries like SQL (equality, regexp, ranges, geospatial)
• Full, flexible index support
• Auto-sharding for horizontal scalability
• Built-in replication and high availability
9. 9
MongoDB Java Spring Data
MongoDB Drivers
• One wire protocol for all client languages
• A driver implementation per language
• Responsibilities:
- Converting language dependent data structures <-> BSON
- Generating ObjectId for _id field
20. 20
MongoDB Java Spring Data
Spring Data MongoDB: Repositories
• Main concept:
• Use the signature of a method to derive the query(at runtime)
• Base implementations / abstractions for
• CRUD operations
• Paging
• Sorting
21. 21
MongoDB Java Spring Data
Spring Data MongoDB: Repositories
22. 22
MongoDB Java Spring Data
Spring Data MongoDB: Repositories
Supported keywords for query methods:
Keyword Logical result
GreaterThan {"age" : {"$gt" : age}}
LessThan {"age" : {"$lt" : age}}
Between {"age" : {"$gt" : from, "$lt" : to}}
IsNotNull, NotNull {"age" : {"$ne" : null}}
IsNull, Null {"age" : null}
Like {"age" : age} ( age as regex)
(No keyword) {"age" : name}
Not {"age" : {"$ne" : name}}
Near {"location" : {"$near" : [x,y]}}
Within {"location" : {"$within" : {"$center" : [ [x, y], distance]}}}
Within {"location" : {"$within" : {"$box" : [ [x1, y1], x2, y2]}}}
23. 23
MongoDB Java Spring Data
Spring Data MongoDB: Repositories
24. 24
MongoDB Java Spring Data
• Map/Reduce / Aggregation framework
• Index management
• Support for GridFS
• Geospatial indexes/queries
• Optimistic Locking
25. 25
MongoDB Java Spring Data
• 10gen Education
• https://education.10gen.com/
• Spring Data - MongoDB
• http://www.springsource.org/spring-data/mongodb
• The Little MongoDB Book
• http://openmymind.net/2011/3/28/The-Little-MongoDB-Book/
26. 26
Questions?
MongoDB
Java
Spring Data
Anton Sulzhenko Anton_Sulzhenko@epam.com