zoukankan      html  css  js  c++  java
  • python | MongoDB备份恢复与导出导入

    说明:本文所有操作均在win7下的MongoDB3.4.4版本中进行。

    一、备份与恢复

    1. 备份:

    mongodump -h IP --port 端口 -u 用户名 -p 密码 -d数据库 -o 文件路径

    (将使用某个用户账号将某个mongodb服务器上的某个数据库备份到某个路径下)

    如果无需指定用户,可以去掉-u和-p;如果导出本机的数据库,可以去掉-h;如果是默认端口,可以去掉--port;

    如果想导出所有数据库,可以去掉-d。如果只想备份某个集合,应在”-d 数据库”后添加”-c 集合名”选项。

    备份单个集合示例:

    这个命令执行之后在D:mongodbackup目录会生成一个'wjt'文件夹,里面两个文件:friend.bson和friend.metadata.json,前者存储集合数据,后者存储集合的元数据,如索引信息等。

    如果想根据查询条件来备份数据,则应该添加’-q 查询条件’选项。

    查询条件备份示例:

    (mongodb3.4.4查询条件使用单引号会报错:query is not in proper format)

    2. 恢复:

    mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d数据库 --drop 文件路径

    --drop:恢复的时候,先删除当前数据库数据,然后恢复备份的数据

    (恢复后,备份后添加、修改的数据都会被删除,慎用!若不使用该选项,则恢复过程可能会出现很多键重复的报错,键重复的数据将不被恢复)

    如果只想备份某个集合,应在”-d 数据库”后添加”-c 集合名”选项,备份某个集合的时候需要指定具体的bson文件,而不能只是指定文件目录。

    恢复单个集合示例:

    导入成功之后,不仅数据可以导入,索引信息也会导入。

    二、导出与导入

    1. 导出:

    mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d数据库 -c 表名 -f 字段名 -q 查询条件 --type=csv -o 文件路径

    mongoexport导数据时一定要使用-c参数指定需要导出的集合,所以-o参数要指定一个具体的文件名而不能是目录。

    -f:只导出指定的字段,多个字段之间使用英文逗号分隔。

    --type:指定导出文件的格式。目前只支持json和csv,指定导出csv格式时一定需要使用-f参数指定需要导出的字段,csv文件第一行为字段名标题。

    2. 导入:

    (1)导入json文件:

    mongoimport -h IP --port 端口 -u用户名 -p 密码 -d 数据库 -c 表名 --upsert --drop 文件名

    --upsert:存在则更新,不存在则插入。若只是导入部分字段,则将其换成--upsertFields参数并指定字段名列表。

    (2)导入csv文件:
    mongoimport -h IP --port 端口 -u用户名 -p 密码 -d 数据库 -c 表名 --type=csv --headerline --upsert --drop 文件名

    --headerline:去除csv文件中的标题行,或使用-fields参数指定字段名,但这两个参数不能同时使用。

  • 相关阅读:
    编译环境
    好看的函数图
    R语言学习
    python画图
    C++技巧
    DLL
    进程共享数据
    八数码问题
    document.getElementsByTagName()返回的是数组document.getElementsById()是dom内容
    使用Math.max,Math.min获取数组中的最值
  • 原文地址:https://www.cnblogs.com/huangjiangyong/p/12174773.html
Copyright © 2011-2022 走看看