背景
有一个csv文件,需要读取里面内容,放到mongodb里。使用的工具是datagrip。
解决方案
1.使用在测试类里面完成
2.使用common-csv对.csv文件进行读取
- springboot添加依赖:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.7</version>
</dependency>
- 读取文件代码
@Test
public void CSVtomongo(){
int flag=0;
House house = new House();
try (Reader reader = Files.newBufferedReader(Paths.get("E:\\00A-实习\\data.csv"))) {
Iterable<CSVRecord> records = CSVFormat.DEFAULT.parse(reader);
for (CSVRecord record : records) {
//下面这些是我csv里面的字段,从record.get(0)开始,一个单元格获取一个
// System.out.println("_id: " + record.get(0));
// System.out.println("base_info: " + record.get(1));
// System.out.println("city: " + record.get(2));
// System.out.println("configuration: " + record.get(3));
// System.out.println("district: " + record.get(4));
// System.out.println("leaseModel: " + record.get(5));
// System.out.println("price: " + record.get(6));
// System.out.println("region: " + record.get(7));
// System.out.println("title: " + record.get(8));
}
} catch (IOException ex) {
ex.printStackTrace();
}
3.读出数据全部都是string类型,这时候存在mongo数据库中问题,需要进行类型转换。
我的configuration字段其实是一个内嵌文档,如果存储为string类型,则不能够进行内嵌文档的字段查询,所以在存储的时候,需要注意以下内容