如何通过Spring Boot在MongoDB中加载初始数据?

Nit*_*tal 9 java mongodb nosql spring-data-mongodb spring-boot

是否可以MongoDB使用src/main/resources/data.sql或通过任何其他文件在数据库中加载初始数据?

据我所知,data.sql用于SQL数据库的,而MongoDB一个NOSQLDB.但只是想知道是否有任何等同data.sqlNOSQL数据库的.

谷歌搜索时我发现了这个SO链接(Spring Boot - 正在加载初始数据),它正在寻找我正在寻找的东西,但它仍然不是一个独立的文件data.sql.

小智 5

要加载初始数据,您可以使用像MongoBee这样的数据库迁移工具

在 java 中处理数据初始化是非常有用的选项。您只需要@Bean public Mongobee mongobee在 Spring Boot 和设置组件扫描中配置数据创建实际发生的数据变更日志。


naX*_*aXa 5

您可以将存储库填充器与 Spring Data MongoDB 结合使用。让我用 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
    }
}
Run Code Online (Sandbox Code Playgroud)

放入test_data.json资源目录。