Skip to content
MongoDB Blog Post: REST APIs with Java, Spring Boot and MongoDB
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
src one lining FindOneAndReplaceOptions Oct 15, 2019
.gitignore saving first version Aug 23, 2018
LICENSE add licence Apache 2.0 Oct 15, 2019 Update to Java 13. Oct 22, 2019
pom.xml wrong variable name for Junit conflicting with version in the parent … Oct 22, 2019

Quick Start Java & MongoDB Project

Supported versions:

  • Java 8 to 13
  • Spring boot 2.2.0.RELEASE
  • MongoDB 4.2.1
  • MongoDB Java driver 3.11.1
  • Maven 3.6.2

MongoDB Atlas


  • Start the server in a console with mvn spring-boot:run.
  • If you add some Unit Tests, you would start them with mvn clean test.
  • You can start the end to end tests with mvn clean integration-test.
  • You can build the project with : mvn clean package.
  • You can run the project with the fat jar and the embedded Tomcat: java -jar target/java-spring-boot-mongodb-starter-1.0.0.jar but I would use a real tomcat in production.


  • Swagger is already configured in this project in
  • The API can be seen at http://localhost:8080/swagger-ui.html.
  • You can also try the entire REST API directly from the Swagger interface!

Features showcase

This project showcases several features of MongoDB:

  • MongoDB multi-document ACID transactions for 3 functions. See MongoDBPersonRepository.saveAll().
  • MongoDB Aggregation pipeline. See MongoDBPersonRepository.getAverageAge().
  • Implementation of basic CRUD queries. See
  • MongoDB typed collection with automatic mapping to POJOs using codecs: See
  • How to manipulate correctly ObjectidId across, the REST API, the POJOs and the database itself. See the main trick in

And some other cool stuff:

  • You can change the default Spring Boot logo by adding a banner.txt file in your properties.
  • You don't have to use Spring Data MongoDB. The MongoDB driver is more flexible and already provide everything you need to code efficiently and optimise your queries correctly.


  • Maxime Beugnet @ MongoDB.
You can’t perform that action at this time.