- Introduction to Spring Boot
- Introduction to NoSQL MongoDB
- Spring Boot Initializr Web Interface
- Spring Data JPA using Spring Boot Application
MongoDB with Spring Boot & Spring Data
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
You can set spring.data.mongodb.uri property to change the URL and configure additional settings such as the replica set:
spring.data.mongodb.uri=mongodb://user:secret@mongo1.example.com:12345,mongo2.example.com:23456/test


Let’s discuss about the application files
Configuration file application.properties
spring.data.mongodb.database=dojdb spring.data.mongodb.host=localhost spring.data.mongodb.port=27017
Following dependencies to be added with maven file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.dineshonjava.sbmdb</groupId>
<artifactId>SpringBootMongoDB</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>SpringBootMongoDB</name>
<description>SpringBootMongoDB project for Spring Boot with MongoDB providing APIs</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
/**
*
*/
package com.dineshonjava.sbmdb.models;
import java.util.Date;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
/**
* @author Dinesh.Rajput
*
*/
@Document
public class Booking{
@Id
String id;
String psngrName;
String departure;
String destination;
Date travelDate;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPsngrName() {
return psngrName;
}
public void setPsngrName(String psngrName) {
this.psngrName = psngrName;
}
public String getDeparture() {
return departure;
}
public void setDeparture(String departure) {
this.departure = departure;
}
public String getDestination() {
return destination;
}
public void setDestination(String destination) {
this.destination = destination;
}
public Date getTravelDate() {
return travelDate;
}
public void setTravelDate(Date travelDate) {
this.travelDate = travelDate;
}
}
BookingRepository.java
package com.dineshonjava.sbmdb.models;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.transaction.annotation.Transactional;
@Transactional
public interface BookingRepository extends MongoRepository {
/**
* This method will find an Boooking instance in the database by its departure.
* Note that this method is not implemented and its working code will be
* automatically generated from its signature by Spring Data JPA.
*/
public Booking findByDeparture(String departure);
}
BookingController.java
/**
*
*/
package com.dineshonjava.sbmdb.controller;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.dineshonjava.sbmdb.models.Booking;
import com.dineshonjava.sbmdb.models.BookingRepository;
/**
* @author Dinesh.Rajput
*
*/
@RestController
@RequestMapping("/booking")
public class BookingController {
@Autowired
BookingRepository bookingRepository;
/**
* GET /create --> Create a new booking and save it in the database.
*/
@RequestMapping("/create")
public Map<String, Object> create(Booking booking) {
booking.setTravelDate(new Date());
booking = bookingRepository.save(booking);
Map<String, Object> dataMap = new HashMap<String, Object>();
dataMap.put("message", "Booking created successfully");
dataMap.put("status", "1");
dataMap.put("booking", booking);
return dataMap;
}
/**
* GET /read --> Read a booking by booking id from the database.
*/
@RequestMapping("/read")
public Map<String, Object> read(@RequestParam String bookingId) {
Booking booking = bookingRepository.findOne(bookingId);
Map<String, Object> dataMap = new HashMap<String, Object>();
dataMap.put("message", "Booking found successfully");
dataMap.put("status", "1");
dataMap.put("booking", booking);
return dataMap;
}
/**
* GET /update --> Update a booking record and save it in the database.
*/
@RequestMapping("/update")
public Map<String, Object> update(@RequestParam String bookingId, @RequestParam String psngrName) {
Booking booking = bookingRepository.findOne(bookingId);
booking.setPsngrName(psngrName);
booking = bookingRepository.save(booking);
Map<String, Object> dataMap = new HashMap<String, Object>();
dataMap.put("message", "Booking updated successfully");
dataMap.put("status", "1");
dataMap.put("booking", booking);
return dataMap;
}
/**
* GET /delete --> Delete a booking from the database.
*/
@RequestMapping("/delete")
public Map<String, Object> delete(@RequestParam String bookingId) {
bookingRepository.delete(bookingId);
Map<String, Object> dataMap = new HashMap<String, Object>();
dataMap.put("message", "Booking deleted successfully");
dataMap.put("status", "1");
return dataMap;
}
/**
* GET /read --> Read all booking from the database.
*/
@RequestMapping("/read-all")
public Map<String, Object> readAll() {
List<Booking> bookings = bookingRepository.findAll();
Map<String, Object> dataMap = new HashMap<String, Object>();
dataMap.put("message", "Booking found successfully");
dataMap.put("totalBooking", bookings.size());
dataMap.put("status", "1");
dataMap.put("bookings", bookings);
return dataMap;
}
}
package com.dineshonjava.sbmdb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootMongoDbApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootMongoDbApplication.class, args);
}
}
For Example:
Reading a Record:
Updating a Record:
Read All Records
Deleting a Record:
For Example:
Whole Source code here
Spring Boot Related Topics
- Spring Boot Interview Questions and Answers
- Introduction to Spring Boot
- Essentials and Key Components of Spring Boot
- Spring Boot CLI Installation and Hello World Example
- Spring Boot Initializr Web Interface
- Spring Boot Initializr With IDEs
- Spring Boot Initializr With Spring Boot CLI
- Installing Spring Boot
- Developing your first Spring Boot application
- External Configurations for Spring Boot Applications
- Logging Configuration in Spring Boot
- Spring Boot and Spring MVC
- Working with SQL Databases and Spring Boot
- MySQL Configurations
- Spring Data JPA using Spring Boot Application
- Spring Boot with NoSQL technologies
- Spring Cache Tutorial
- Spring Security Tutorial with Spring Boot
- Complete Guide for Spring Boot Actuator
- Microservices with Spring Boot






hi Dinesh ,
This article is very useful , spring boot + Mongo dB using repository . I want some material based on spring boot + mongo dB using DAO + services . If you have any material ping me the URL.