How can you load initial data in MongoDB through Spring Boot?

you can define your data in json/xml and use populator elements of the repository to load the data.

https://docs.spring.io/spring-data/mongodb/docs/2.0.9.RELEASE/reference/html/#core.repository-populators


You can use a repository populator with Spring Data MongoDB. Let me demonstrate this with a code sample in Kotlin:

@Configuration
class TestApplicationConfig {
    @Value("classpath:test_data.json")
    private lateinit var testData: Resource

    @Bean
    @Autowired
    fun repositoryPopulator(objectMapper: ObjectMapper): Jackson2RepositoryPopulatorFactoryBean {
        val factory = Jackson2RepositoryPopulatorFactoryBean()
        // inject your Jackson Object Mapper if you need to customize it:
        factory.setMapper(objectMapper)
        factory.setResources(arrayOf(testData))
        return factory
    }
}

Put test_data.json in resources directory.


To load initial data you can use db migration tool like MongoBee

It's very useful option to handle data initialization in java. You just need to configure @Bean public Mongobee mongobee in your spring boot and setup component scan for data ChangeLogs where data creation actually happens.