MongoDB 如何导出 csv文件

本文介绍了如何使用集算器esProc SPL将MongoDB的非结构化数据转换并导出为CSV文件,适用于数据迁移或其他数据库应用。通过示例展示了处理包含嵌套子文档的成绩数据表,最终成功生成CSV文件。

将非结构化的 MongoDB 数据转换成结构化的数据,导出成 csv 文件,可供迁移到其它数据库等应用。
如有集合 scores 成绩数据表,含有 subject 嵌套子文档记录各科成绩表,需导出生成 csv 文件。

nameageprovincesubject
zhou gao gao24guang xi{"name": "Chinese","score": 80},
{"name": "Math","score": 84},{"name": "English","score": 84},{"name": "Chemic","score": 98}
li chao16shan dong{"name": "Chinese","score": 94},
{"name": "Math","score": 88},{"name": "English","score": 75},{"name": "Chemic","score": 73}
yang hao hao26guang xi{"name": "Chinese,"score": 85},
{"name": "Math,"score": 83},{"name": "English ,"score": 64},{"name": "Chemic,"score": 71}

使用集算器, 将数据结构化后导出成 csv 文件。

实现步骤:
1、编写脚本 scores.dfx:

AB
1=mongo_open("mongodb://localhost:27017/student")/ 连接 MongDB 数据库
2=mongo_shell(A1,"score2.find(,{_id:0})").fetch()/ 获取集合 score 数据
3=A2.new(name, age, province, (r=subject.(score))(1): Chinese,r(2): English,r(3): Math, r(4): Chemic)/ 数据结构化,每科成绩变成一列
4>file("D:\\tmp\\exp_data.csv").export@tc(A3)/ 导出生成 cvs 文件
5=A2.news(subject; name:subject, score, A2.name, age, province)/ 数据结构化, 科目成绩对应
6>file("D:\\tmp\\exp_data2.csv").export@tc(A5)/ 导出生成 cvs 文件
7>A1.close()/ 关闭连接

2、调试执行一下,可看到格值 A3 为:

nameageprovinceChineseEnglishMathChemic
zhou gao gao24guang xi8084248
li chao16shan dong94245032
yang hao hao26guang xi44112680

格值 A6 为:

subjectscorenameageprovince
Chinese80zhou gao gao24guang xi
Math84zhou gao gao24guang xi
English24zhou gao gao24guang xi

3、执行脚本后在:D:\tmp 目录下生成两个相应的 csv 文件

A5 由于科目 subject 下的名称与用户名称同名,将科目的名称改为 subject。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值