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

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

我知道它用于DB的,而是DB。但只是想知道是否有任何等同于DB的。data.sqlSQLMongoDBNOSQLdata.sqlNOSQL

在谷歌搜索时,我发现了这个SO链接(Spring Boot - Loading Initial Data),它做了我正在寻找的东西,但它仍然不是一个独立的文件。data.sql


答案 1

要加载初始数据,您可以使用数据库迁移工具,如MongoBee

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


答案 2

您可以将存储库填充器与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
    }
}

放入资源目录。test_data.json