SlideShare a Scribd company logo
MongoDB + JAVA + Spring data
Anton Sulzhenko
Java Software Engineer
Anton_Sulzhenko@epam.com
MongoDB + Java + Spring Data
  MongoDB


  Java


  Spring Data
3
         MongoDB           Java       Spring Data

What is NoSQL?
• Non-relational data
• Schemaless
• No JOINs, No complex transactions
• Horizontal scalability
4
        MongoDB           Java       Spring Data



• Key-value(Redis, MemcaheDB)
• Wide column(BigTable, Cassandra, HBase)
• Document(MongoDB, CouchDB, Riak)
• Graph(Neo4j, FlockDB)
5
MongoDB   Java   Spring Data
MongoDB
Documented-oriented database
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
         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
         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
10




MongoDB + Java + Spring Data
  MongoDB


  Java


  Spring Data
11
           MongoDB           Java      Spring Data

MongoDB Java Driver Features
• CRUD
• Support for replica sets
• Connection pooling
• Distributed reads to slave servers
• BSON serializerdesirializer
• JSON serializerdesirializer
• GridFS
12
    MongoDB    Java   Spring Data

MongoDB Java Driver Usage
13




MongoDB + Java + Spring Data
  MongoDB


  Java


  Spring Data
SPRING DATA
MongoDB
15
           MongoDB                 Java          Spring Data

Spring Data MongoDB
• Templating
   • Resource abstraction
   • Configure connections to mongod/mongos node(s)
   • Collection lifecycle (create/drop)
   • Map/Reduce / Aggregation

• Object mapping
  • Annotation based: @Document, @Field, @Index etc.
  • Classes are mapped to collections, Java Objects to documents

• Repository Support
  • Queries are derived from method signatures
  • Geospatial Queries
16
               MongoDB                Java              Spring Data


Instantiating MongoTemplate using XML based metadata:
17
              MongoDB               Java      Spring Data


Sample CRUD operations using MongoTemplate:
18
        MongoDB           Java   Spring Data



 Mapping annotation overview:
• @Id
• @Document
• @DBRef
• @Indexed
• @CompoundIndex
• @GeoSpatialIndexed
• @Transient
• @PersistenceConstructor
• @Value
19
MongoDB   Java   Spring Data
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
      MongoDB     Java    Spring Data

Spring Data MongoDB: Repositories
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
      MongoDB     Java    Spring Data

Spring Data MongoDB: Repositories
24
         MongoDB               Java    Spring Data




• Map/Reduce / Aggregation framework
• Index management
• Support for GridFS
• Geospatial indexes/queries
• Optimistic Locking
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




   Questions?
       MongoDB


       Java


       Spring Data


Anton Sulzhenko      Anton_Sulzhenko@epam.com

More Related Content

What's hot (20)

PDF
Angular
Lilia Sfaxi
 
PDF
Complete Java Course
Lhouceine OUHAMZA
 
PDF
Chp5 - Les outils CASE
Lilia Sfaxi
 
PDF
Angular directives and pipes
Knoldus Inc.
 
PDF
Spring Boot
Pei-Tang Huang
 
PPTX
Spring Boot and REST API
07.pallav
 
PDF
Openstack proposition
Romuald Franck
 
PDF
Intro to vue.js
TechMagic
 
PPTX
Life Cycle hooks in VueJs
Squash Apps Pvt Ltd
 
PDF
Swagger With REST APIs.pptx.pdf
Knoldus Inc.
 
PPTX
Angular 2.0 forms
Eyal Vardi
 
PDF
Spring Framework - Core
Dzmitry Naskou
 
PDF
Angular.pdf
Jaouad Assabbour
 
PDF
Support distributed computing and caching avec hazelcast
ENSET, Université Hassan II Casablanca
 
PPTX
Presentation1.pptx
PradeepDyavannanavar
 
PDF
gRPC Overview
Varun Talwar
 
PDF
Support de cours angular
ENSET, Université Hassan II Casablanca
 
PPTX
Introduction à spring boot
Antoine Rey
 
PPTX
Angular Data Binding
Jennifer Estrada
 
Angular
Lilia Sfaxi
 
Complete Java Course
Lhouceine OUHAMZA
 
Chp5 - Les outils CASE
Lilia Sfaxi
 
Angular directives and pipes
Knoldus Inc.
 
Spring Boot
Pei-Tang Huang
 
Spring Boot and REST API
07.pallav
 
Openstack proposition
Romuald Franck
 
Intro to vue.js
TechMagic
 
Life Cycle hooks in VueJs
Squash Apps Pvt Ltd
 
Swagger With REST APIs.pptx.pdf
Knoldus Inc.
 
Angular 2.0 forms
Eyal Vardi
 
Spring Framework - Core
Dzmitry Naskou
 
Angular.pdf
Jaouad Assabbour
 
Support distributed computing and caching avec hazelcast
ENSET, Université Hassan II Casablanca
 
Presentation1.pptx
PradeepDyavannanavar
 
gRPC Overview
Varun Talwar
 
Support de cours angular
ENSET, Université Hassan II Casablanca
 
Introduction à spring boot
Antoine Rey
 
Angular Data Binding
Jennifer Estrada
 

Viewers also liked (13)

PDF
Java Persistence Frameworks for MongoDB
MongoDB
 
PPTX
MongoDB + Java - Everything you need to know
Norberto Leite
 
PDF
Buenas prácticas para pequeños/medianos operadores de telefonía basados en Op...
PaloSanto Solutions
 
PPTX
MongoDB + Spring
Norberto Leite
 
KEY
The Spring Data MongoDB Project
MongoDB
 
PDF
Spring Data y Mongo DB en un proyecto Real
David Gómez García
 
PPT
Spring + JPA + DAO Step by Step
Guo Albert
 
PPSX
Génie Logiciel : les tests
Mohammed Amine Mostefai
 
PDF
Hadoop, the Apple of Our Eyes (這些年,我們一起追的 Hadoop)
Kuo-Chun Su
 
PPTX
Spring Data, Jongo & Co.
Tobias Trelle
 
PPTX
Morphia, Spring Data & Co.
Tobias Trelle
 
PDF
Tests & recette - Les fondamentaux
COMPETENSIS
 
ODP
Présentation Agile Testing
jubehr
 
Java Persistence Frameworks for MongoDB
MongoDB
 
MongoDB + Java - Everything you need to know
Norberto Leite
 
Buenas prácticas para pequeños/medianos operadores de telefonía basados en Op...
PaloSanto Solutions
 
MongoDB + Spring
Norberto Leite
 
The Spring Data MongoDB Project
MongoDB
 
Spring Data y Mongo DB en un proyecto Real
David Gómez García
 
Spring + JPA + DAO Step by Step
Guo Albert
 
Génie Logiciel : les tests
Mohammed Amine Mostefai
 
Hadoop, the Apple of Our Eyes (這些年,我們一起追的 Hadoop)
Kuo-Chun Su
 
Spring Data, Jongo & Co.
Tobias Trelle
 
Morphia, Spring Data & Co.
Tobias Trelle
 
Tests & recette - Les fondamentaux
COMPETENSIS
 
Présentation Agile Testing
jubehr
 
Ad

Similar to MongoDB + Java + Spring Data (20)

KEY
using Spring and MongoDB on Cloud Foundry
Joshua Long
 
PPTX
BedCon 2013 - Java Persistenz-Frameworks für MongoDB
Tobias Trelle
 
PPSX
Mongodb
foliba
 
PDF
Scalany mongodb aug10
bwmcadams
 
PDF
Using MongoDB and Python
Mike Bright
 
PDF
2016 feb-23 pyugre-py_mongo
Michael Bright
 
PPTX
Copy of MongoDB .pptx
nehabsairam
 
PPT
MongoDB Tick Data Presentation
MongoDB
 
PDF
10gen MongoDB Video Presentation at WebGeek DevCup
WebGeek Philippines
 
PPTX
Java Persistence Frameworks for MongoDB
Tobias Trelle
 
PDF
Using Spring with NoSQL databases (SpringOne China 2012)
Chris Richardson
 
PPTX
MongoDB
nikhil2807
 
PPTX
Using MongoDB For BigData in 20 Minutes
András Fehér
 
PDF
MongoDB in FS
MongoDB
 
PPTX
Basics of MongoDB
HabileLabs
 
PPTX
MongoDB is a document database. It stores data in a type of JSON format calle...
amintafernandos
 
PPTX
MongoDB and Hadoop: Driving Business Insights
MongoDB
 
PDF
Data Access 2.0? Please welcome, Spring Data!
Oliver Gierke
 
PDF
Spring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver Gierke
JAX London
 
PDF
MongoDB NoSQL database a deep dive -MyWhitePaper
Rajesh Kumar
 
using Spring and MongoDB on Cloud Foundry
Joshua Long
 
BedCon 2013 - Java Persistenz-Frameworks für MongoDB
Tobias Trelle
 
Mongodb
foliba
 
Scalany mongodb aug10
bwmcadams
 
Using MongoDB and Python
Mike Bright
 
2016 feb-23 pyugre-py_mongo
Michael Bright
 
Copy of MongoDB .pptx
nehabsairam
 
MongoDB Tick Data Presentation
MongoDB
 
10gen MongoDB Video Presentation at WebGeek DevCup
WebGeek Philippines
 
Java Persistence Frameworks for MongoDB
Tobias Trelle
 
Using Spring with NoSQL databases (SpringOne China 2012)
Chris Richardson
 
MongoDB
nikhil2807
 
Using MongoDB For BigData in 20 Minutes
András Fehér
 
MongoDB in FS
MongoDB
 
Basics of MongoDB
HabileLabs
 
MongoDB is a document database. It stores data in a type of JSON format calle...
amintafernandos
 
MongoDB and Hadoop: Driving Business Insights
MongoDB
 
Data Access 2.0? Please welcome, Spring Data!
Oliver Gierke
 
Spring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver Gierke
JAX London
 
MongoDB NoSQL database a deep dive -MyWhitePaper
Rajesh Kumar
 
Ad

Recently uploaded (20)

PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Python basic programing language for automation
DanialHabibi2
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 

MongoDB + Java + Spring Data

  • 1. MongoDB + JAVA + Spring data Anton Sulzhenko Java Software Engineer [email protected]
  • 2. MongoDB + Java + Spring Data MongoDB Java Spring Data
  • 3. 3 MongoDB Java Spring Data What is NoSQL? • Non-relational data • Schemaless • No JOINs, No complex transactions • Horizontal scalability
  • 4. 4 MongoDB Java Spring Data • Key-value(Redis, MemcaheDB) • Wide column(BigTable, Cassandra, HBase) • Document(MongoDB, CouchDB, Riak) • Graph(Neo4j, FlockDB)
  • 5. 5 MongoDB Java Spring Data
  • 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
  • 10. 10 MongoDB + Java + Spring Data MongoDB Java Spring Data
  • 11. 11 MongoDB Java Spring Data MongoDB Java Driver Features • CRUD • Support for replica sets • Connection pooling • Distributed reads to slave servers • BSON serializerdesirializer • JSON serializerdesirializer • GridFS
  • 12. 12 MongoDB Java Spring Data MongoDB Java Driver Usage
  • 13. 13 MongoDB + Java + Spring Data MongoDB Java Spring Data
  • 15. 15 MongoDB Java Spring Data Spring Data MongoDB • Templating • Resource abstraction • Configure connections to mongod/mongos node(s) • Collection lifecycle (create/drop) • Map/Reduce / Aggregation • Object mapping • Annotation based: @Document, @Field, @Index etc. • Classes are mapped to collections, Java Objects to documents • Repository Support • Queries are derived from method signatures • Geospatial Queries
  • 16. 16 MongoDB Java Spring Data Instantiating MongoTemplate using XML based metadata:
  • 17. 17 MongoDB Java Spring Data Sample CRUD operations using MongoTemplate:
  • 18. 18 MongoDB Java Spring Data Mapping annotation overview: • @Id • @Document • @DBRef • @Indexed • @CompoundIndex • @GeoSpatialIndexed • @Transient • @PersistenceConstructor • @Value
  • 19. 19 MongoDB Java Spring Data
  • 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 [email protected]