欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mongodb批量导入数据

程序员文章站 2022-05-26 19:40:39
...

mongodb 命令行可以把sql文件批量导入数据,首先把sql文件加工称如下格式 zip.sql源文件 INSERT INTO POST(id,PostNumber,Province,City,District,Address,jd) VALUES (1161,010010,内蒙古自治区,呼和浩特市,新城区,光华街(十四中家属楼),内蒙古自治区呼和浩

mongodb 命令行可以把sql文件批量导入数据,首先把sql文件加工称如下格式

zip.sql源文件

INSERT INTO POST(id,PostNumber,Province,City,District,Address,jd) VALUES ('1161','010010','内蒙古自治区','呼和浩特市','新城区','光华街(十四中家属楼)','内蒙古自治区呼和浩特市新城区');

INSERT INTO POST(id,PostNumber,Province,City,District,Address,jd) VALUES ('1162','010010','内蒙古自治区','呼和浩特市','新城区','兴安南路','内蒙古自治区呼和浩特市新城区');

借助awk和sed

awk -f "','" '{print "\x27number:\x27"$2"\x27,\x27province\x27:\x27"$3"\x27,\x27city\x27:\x27"$4"\x27,\x27disc\x27:\x27"$5"\x27,\x27addr\x27:\x27"$6"\x27,\x27jd\x27:\x27"$7} zip.sql >step1.txt

sed -e 's/);/})/g' setp1.txt > mon

加工后的mon文件

db.area.insert({'number':'010010','province':'内蒙古自治区','city':'呼和浩特市','disc':'新城区','addr':'光华街(十四中家属楼)','jd':'内蒙古自治区呼和浩特市新城区'})

db.area.insert({'number':'010010','province':'内蒙古自治区','city':'呼和浩特市','disc':'新城区','addr':'兴安南路','jd':'内蒙古自治区呼和浩特市新城区'})

cat mon | /usr/local/mongodb/bin/mongo localhost/zip --shell

其中zip为数据库名 area为集合名

mongodb建立索引

/usr/local/mongodb/bin/mongo

use zip

db.area.ensureIndex({"number":1})