美文网首页我爱编程
MongoDB - 数据管理

MongoDB - 数据管理

作者: yuanzicheng | 来源:发表于2018-05-24 17:34 被阅读72次

    数据的备份、恢复以及导出、导入是数据库管理工作中的重要内容,MongoDB提供了一整套的工具来完成这些工作。

    1.数据备份mongodump

    mongodump用于数据备份,它的工作原理是对MongoDB进行普通查询后将结果写入文件。

    mongodump -d test -o /tmp/
    

    还可以通过-c及-q选项指定需要备份的集合和筛选条件

    mongodump -d test -c user -q "{name:'tom'}" -o /tmp/
    

    备份执行完成后,会在-o指定的目录下以数据库名创建一个目录,数据文件存放在这个目录中。

    mongodump的更多用法可以通过--help查看

    mongodump --help
    

    2.数据恢复mongorestore

    mongorestore与mongodump配合使用,mongorestore用于数据恢复的文件就是mongodump备份的数据文件。

    mongorestore -d test /tmp/test --drop
    

    --drop表示如果数据库已存在则删除原数据库,不加--drop参数则会将用于恢复的数据库与原数据库合并。

    3.数据导出mongoexport

    mongodump主要是针对库的备份,MongoDB还提供了针对集合的备份工具mongoexport。mongoexport比较灵活,可以指定导出的格式已经导出的字段。

    • 导出JSON格式
    mongoexport -d test -c user -o /tmp/test.user.dat
    
    • 导出CSV格式
    mongoexport -d test -c user --csv -f _id,name,age -o /tmp/test.user.csv
    

    另外,mongoexport也可以使用-q参数增加筛选条件。

    4.数据导入mongoimport

    mongoimport与mongoexport配合,使用mongoexport导出的备份文件进行数据恢复。

    • JSON格式数据导入
    mongoimport -d test -c user --type json /tmp/test.user.dat --upsert
    

    --type参数的默认值是json,如果导入json格式数据,可以不使用。
    --upsert表示更新现有数据,如果部使用--upsert,导入数据时遇到_id重复时不会插入数据。另外也可以使用--drop删除原数据。

    • CSV格式数据导入
    mongoimport -d test -c user --type csv --headerline --file /tmp/test.user.csv --drop
    

    其中--headerline表示不导入csv文件的第一行,因为csv文件第一行为列名。

    相关文章

      网友评论

        本文标题:MongoDB - 数据管理

        本文链接:https://www.haomeiwen.com/subject/bueyzxtx.html