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

18

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

我知道 data.sql 用于 SQL 数据库,而 MongoDB 是一个 NOSQL 数据库。但是我想知道是否有 NOSQL 数据库的等效物 data.sql

在搜索时,我发现了这个 Stack Overflow 链接 (Spring Boot - Loading Initial Data),它可以做到我想要的,但它仍然不是一个独立的文件 data.sql

3个回答

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
    }
}

test_data.json放入资源目录中。


你能否从test_data.json中获取数组并逐个填充它? - Shahar Wider
@ShaharWider,看起来这是一个新问题。请提问,Stack Overflow将会回答。 - naXa stands with Ukraine
1
我大约20天前发布了这个问题。没有人回答... https://dev59.com/2rnoa4cB1Zd3GeqPYNRj - Shahar Wider

5
为了加载初始数据,您可以使用数据库迁移工具,例如MongoBee
这是处理Java中的数据初始化的非常有用的选项。您只需要在Spring Boot中配置@Bean public Mongobee mongobee,并设置组件扫描以查找实际发生数据创建的数据ChangeLogs。

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接