0
0
SpringbootHow-ToBeginner · 4 min read

How to Connect to MongoDB in Spring Boot Easily

To connect to MongoDB in Spring Boot, add the spring-boot-starter-data-mongodb dependency, then configure the connection URI in application.properties using spring.data.mongodb.uri. Finally, create repository interfaces extending MongoRepository to interact with your MongoDB collections.
📐

Syntax

Connecting Spring Boot to MongoDB involves three main parts:

  • Dependency: Add the MongoDB starter to your project.
  • Configuration: Set the MongoDB URI in application.properties or application.yml.
  • Repository: Create interfaces extending MongoRepository to perform database operations.
plaintext
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
}

# application.properties
spring.data.mongodb.uri=mongodb://localhost:27017/your_database

public interface YourEntityRepository extends MongoRepository<YourEntity, String> {
    // custom query methods if needed
}
💻

Example

This example shows a simple Spring Boot application connecting to a local MongoDB database named testdb. It defines an entity, a repository, and a service to save and retrieve data.

java
package com.example.mongodbexample;

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Component;

@SpringBootApplication
public class MongodbExampleApplication {
    public static void main(String[] args) {
        SpringApplication.run(MongodbExampleApplication.class, args);
    }
}

@Document(collection = "users")
class User {
    @Id
    private String id;
    private String name;

    public User() {}
    public User(String name) { this.name = name; }
    public String getId() { return id; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
}

interface UserRepository extends MongoRepository<User, String> {}

@Component
class UserRunner implements CommandLineRunner {
    private final UserRepository userRepository;

    public UserRunner(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    @Override
    public void run(String... args) throws Exception {
        userRepository.deleteAll();
        userRepository.save(new User("Alice"));
        userRepository.save(new User("Bob"));

        System.out.println("Users in MongoDB:");
        userRepository.findAll().forEach(user -> System.out.println(user.getName()));
    }
}

# application.properties
spring.data.mongodb.uri=mongodb://localhost:27017/testdb
Output
Users in MongoDB: Alice Bob
⚠️

Common Pitfalls

Common mistakes when connecting Spring Boot to MongoDB include:

  • Not adding the spring-boot-starter-data-mongodb dependency, so MongoDB support is missing.
  • Incorrect MongoDB URI format or wrong port, causing connection failures.
  • Forgetting to annotate entity classes with @Document, so Spring Data can't map them.
  • Using MongoTemplate without proper configuration (advanced use case).

Always verify your MongoDB server is running and accessible at the configured URI.

plaintext
/* Wrong: Missing dependency in build file
dependencies {
    // no mongodb starter
}

# Wrong URI format
spring.data.mongodb.uri=mongodb://wronghost:1234/db

// Entity missing @Document annotation
class User {
    @Id
    private String id;
    private String name;
}

/* Right way: Add dependency, correct URI, and annotate entity */
📊

Quick Reference

Summary tips for connecting Spring Boot to MongoDB:

  • Add spring-boot-starter-data-mongodb dependency.
  • Set spring.data.mongodb.uri in application.properties.
  • Annotate entity classes with @Document.
  • Create repository interfaces extending MongoRepository.
  • Ensure MongoDB server is running and accessible.

Key Takeaways

Add the spring-boot-starter-data-mongodb dependency to enable MongoDB support.
Configure the MongoDB connection URI in application.properties using spring.data.mongodb.uri.
Use @Document annotation on entity classes to map them to MongoDB collections.
Create repository interfaces extending MongoRepository to perform database operations easily.
Verify your MongoDB server is running and accessible at the configured address.