把 MySQL 数据导入到 MongoDB

数据库 投稿 46000 0 评论

一、安装Navicat,导出数据,数据量太大选择.txt文件保存。

选择要导出的表,右键选择“导出向导”,选择文件格式导出文件。

 二、编辑导出的文本,第一行是字段名称

由于多次编辑存在后导入存在乱码,试过多次UTF-8转换无效,这里把查询结果第一行作为字段名称,懒人方法。

 三、导入到MongDB

修改导出的txt文件为.csv文件,选择要导入的数据库,选择Tab,选择字段类型

 四、MongoDB的DML语句

在发布生产云服务器的时候,经常会出现导入脚本报错。以阿里云的MongoDB为例,目前只支持.csv,且导入经常失败,此时需要DML语句。

insert()方法:

下面是在inventory集合中插入一个三个字段的文档:

db.inventory.insert( { _id: 10, type: "misc", item: "card", qty: 15 } )

save()方法:

使用save()方法插入一个文档,通过该方法保存一个不包含_id字段的文档或者包含_id字段但该字段值不存在集合中的文档。下面的示例创建一个新的文档在inventory集合:

db.inventory.save( { type: "book", item: "notebook", qty: 40 } )

当在使用save方法时,插入不指定_id时,会自动生成一个。

Insert和Save的区别是:如果插入的集合的“_id”值,在集合中已经存在,用Insert执行插入操作会报异常,已经存在"_id"的键。用Save如果系统中没有相同的"_id"就执行插入操作,有的话就执行覆盖掉原来的值。相当于修改操作。

update()方法:

调用update()方法使用upsert标志创建一个新文档当没有匹配查询条件的文档时。下面的例子当inventory集合中没有包含{type:"books",item:"journal"}的文档时创建一个新文档:

db.inventory.update(
    { type: "book", item : "journal" },
    { $set : { qty: 10 } },
    { upsert :true }
)

编程笔记 » 把 MySQL 数据导入到 MongoDB

赞同 (85) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽