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.propertiesorapplication.yml. - Repository: Create interfaces extending
MongoRepositoryto 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-mongodbdependency, 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
MongoTemplatewithout 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-mongodbdependency. - Set
spring.data.mongodb.uriinapplication.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.