如何将mongodb查询结果如何导出、导入
–导出数据
步骤一、将查询的结果生成一张临时表
use test
var result = db.CcDownloadrd.find({$or:[{"userId" : "USER20190417010001593518"},{"userId" : "USER20191015010000000993"},{"userId" : "USER20190417010001010672"},{"userId" : "USER20190710010000000428"},{"userId" : "USER20190417010001728545"},{"userId" : "USER20190518010000001107"},{"userId" : "USER20190712010000002259"}]})
while(result.hasNext()) {
db.tempCcDownloadrd.insert(result.next());
}
步骤二、使用csv类型导出结果
# -f 字段名称:必须填写
mongoexport -h 192.168.40.132 -d test --port 10011 --username root --type=csv --password *** --collection tempCcDownloadrd -f _id,userId,oursewareId,downloadrdIp ,downloadrdDevice,downloadrdDevicename,downloadrdDevicesystem,downloadrdDeviceversion,downloadrdCreateddate ,coursewareSourceId ,userSourceid --out /opt/1.csv --authenticationDatabase admin
注:
--导出中文乱码,导出编码为utf-8
EXCEL打开的CSV文件默认是ANSI编码,如果CSV文件的编码方式为utf-8、Unicode等编码可能就会出现文件乱码的情况,
如果要导入到集合中,不要修改编码。
--如果集合中有中文,导出时可以使用navicat工具,导出编码为《简体中文GBK》,这样excel打开cvs不会乱码
–导入数据
mongoimport -h 192.168.40.132 --port 10011 --username root --password *** -d test --collection CcDownloadrd --type csv --headerline --ignoreBlanks --file /opt/1.csv --authenticationDatabase admin
或
mongoimport -h 172.31.129.91 --port 10011 --username root --password *** -d coursecentertest --collection CcPlayrd --type csv --headerline --ignoreBlanks --file /data/backup/1.csv --authenticationDatabase admin --numInsertionWorkers 20
--db test:需要将数据导入到哪个数据库,这里以networ1数据库为例;
--collection CcDownloadrd:将数据导入的 collection 名,这里以networkmanagement为例,如果这个networkmanagement之前是不存在的,则会自动创建一个。如果省略--collection networkmanagement这个参数,那么会自动新建一个以 CSV 文件名为名的 collection。
--type csv: 文件类型,这里是 csv;
--headerline: 这个参数很重要,加上这个参数后创建完成后的内容会以 CSV 第一行的内容为字段名;
--ignoreBlanks: 这个参数可以忽略掉 CSV 文件中的空缺值;
--file /opt/1.csv:这里就是 csv 文件的路径了。
--numInsertionWorkers 线程数量
--batchSize 块大小