1、启动Mongodb数据库。在自己电脑的E盘、D盘根目录模拟出两个Mongodb的数据库,分别代表旧库和新库。由于Mongodb的部署非常简单,数据文件分别在E:\mongodb\data\db(使用27017端口)和D:\mongodb\data\db(使用27117端口)下。具体如图。
2、连接新库查看其数据情况。通过Mongodb自带的客户端robomongo-1.0.0-rc1-windows-x86_64-496f5c2.zip,解压后找到Robomongo.exe,右击以管理员运行。左图所示界面,要求选择要连接的数据库。
3、连接旧库查看数据情况。同样通过客户端,连接旧库。如下图所示,旧数据库里面含有5条文档数据。下面我们就将旧库中的5条数据通过命令导出。
4、从旧库导出数据。分别导出files.chunks(保存有文档数据,二进制格式) 和files.files (保存有文件信息),对于文档类数据两个需要分别导出。
5、导入数据到新库。同理,上一步导出的文件,要分别导入。
6、连接新库,查看数据情况。同样通过客户端,连接新库。如下图所示,我们发现5条文档数据已经导入进来。
本篇文章简单介绍如何将文本数据使用shell脚本导入MongoDB。
过程如下:
${str//'!^'/','} 字符替换,将 !^ 替换为 ,
< 表示从一个文件读内容;
> 表示将内容写进一个文件,如果该文件不存在,会自动新建该文件,因此该 *** 作会覆盖文件之前内容;
>> 同 > ,追加模式,但是该 *** 作不会覆盖之前文件内容。
该脚本使用awk将数据转为json格式,尝试使用 -F '!^' 做为分割符时,数据处理出现丢失,错误的现象,使用 -F ',' 时,数据无误。
本次处理的文本数据分割符为特殊分割符 !^ ,因此将分隔符替换为 , 。
-vq=' " ' 设置一个变量 q = " 。
function··· 为数据处理过程,格式化为json。
EOF 之间可以执行mongo的任意 *** 作命令。
此处删除了集合名为 ${txt_name} 的集合(无论该集合是否存在,该 *** 作不会影响脚本执行)。
mongoimport 将文件数据导入MongoDB,文件可以为 json 或 csv 格式,此处使用的是json文件。
rm -rf file 强制删除文件 file
rm shell 删除文件(夹)的命令
-rf 该参数表示不询问,强制删除,重要文件删除,不推荐使用该参数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)