如何使用Spring Boot将JSON数据文件导入mongodb?

时间:2019-02-16 11:55:33

标签: spring-boot spring-mongodb

如您所知,在使用spring boot jpa模块时,application.properties中的以下代码将预定义的sql数据导入到rdb。

spring.datasource.initialization-mode = always
spring.datasource.data = classpath:/sql/spring-boot-mysql.sql

但是使用mongodb作为存储时,application.properties文件中的哪些属性代码可以导入外部文件的预定义JSON数据?如果此类属性未退出,那么如何使用Spring Boot从外部文件导入JSON数据?

2 个答案:

答案 0 :(得分:2)

我不知道是否有使用application.properties的解决方案,但这是我的解决方案,用于从每行包含一个文档的文件中导入文档。

public static void importDocumentsFromJsonFile(File file) {
        //Read each line of the json file. Each file is one observation document.
        List<Document> observationDocuments = new ArrayList<>();
        try (BufferedReader br = new BufferedReader(new FileReader(file.getPath()));) {
            String line;
            while ((line = br.readLine()) != null) {
                observationDocuments.add(Document.parse(line));
            }
        } catch (IOException ex) {
            ex.getMessage();
        }
        mongoTemplate.getCollection("yourCollection").insertMany(observationDocuments);
    }

答案 1 :(得分:0)

您可以查看以下由“ flapdoodle”提供的Test类。该测试显示了如何导入包含集合数据集的JSON文件:MongoImportExecutableTest.java

理论上,您也可以导入整个数据库转储。 (使用MongoDB还原):MongoRestoreExecutableTest.java