MongoDB 数据存储

114 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情

在实际开发中我们应该学会对 MongoDB 中的数据进行备份,这样在发生数据丢失事件时可以不必惊慌失措,只用将备份的数据进行恢复即可。接下来我们就一起来学习 MongoDB 中数据的备份与恢复~ 😊

mongodump 进行数据备份

我们都知道在 MySQL 数据库中可以进行数据的备份与恢复,同样在 MongoDB 也支持数据的备份与恢复。MongoDB 中备份与恢复的命令有两组,分别是:

  • mongodump/mongorestore
  • mongoexport/mongoimport

他们是成对出现的。

➡️ mongodump 备份的语法

  • mongodump 命令基本语法如下所示 👇:

    mongodump -h dbhost -d dbname -o dbdirectory
    
  • 可以使用的参数如下表所示

    参数说明
    -h指明 MongoDB 服务器所在的地址。
    -u指明数据库的用户名。
    -p指明数据库的密码。
    -d指明数据库的名字。
    -c指明集合的名字。
    -o指明备份的数据存放的位置。
    -q指明备份数据的过滤条件。
    --authenticationDatabase验证数据的名称。
    --gzip备份时压缩。

    MongoDB 服务器中所有的数据库进行备份。

mongodump -h 127.0.0.1:27017 -o /home/project

✨ 说明:这里不使用 -d 参数指定具体的数据库。这里大家要注意, MongoDB 自带的 local 和 config 数据库不会进行备份,其余数据库都会备份。

mongorestore 进行数据恢复

mongorestore 恢复的语法

  • mongorestore 命令基本语法如下所示 👇:

    mongorestore -h <hostname><:port> -d dbname <path>
    
  • 可以使用的参数如下表所示 👇:

    参数说明
    -h指明 MongoDB 服务器所在的地址。
    -u指明数据库的用户名。
    -p指明数据库的密码。
    -d指明数据库的名字。
    -c指明集合的名字。
    -o(参数需要省略,只需要值,即指明到备份的具体存放数据的文件。
    --authenticationDatabase验证数据的名称。
    --drop恢复的时候把之前的集合删除。

mongoexport 进行数据导出

MongoDB 中的 mongoexport 命令可以把一个集合中的导出成 JSON 格式或 CSV 格式的文件。接下来我们来学习如何使用 mongoexport 将集合中的数据进行导出。

➡️ mongoexport 导出的语法

  • mongoexport 命令基本语法如下所示 👇:

    mongoexport -h dbhost -d dbname -c collection -o dbdirectory
    
  • 可以使用的参数如下表所示 👇:

    参数说明
    -h指明 MongoDB 服务器所在的地址。
    -u指明数据库的用户名。
    -p指明数据库的密码。
    -d指明数据库的名字。
    -c指明集合的名字。
    -f指明要导出哪些列。
    -o指明到要导出的文件名。
    -q指明导出数据的过滤条件。
    --type指定文件类型。
    --authenticationDatabase验证数据的名称。

mongoimport 进行数据导入

mongoimport 导入的语法

  • mongoimport 命令基本语法如下所示 👇:

    mongoimport -h <hostname><:port> -d dbname -c collection <path>
    
  • 可以使用的参数如下表所示 👇:

    参数说明
    -h指明 MongoDB 服务器所在的地址。
    -u指明数据库的用户名。
    -p指明数据库的密码。
    -d指明数据库的名字。
    -c指明集合的名字。
    --drop导入数据之前先删除原有的。
    --headerline指明第一行是列名,不需要导入。
    --file指定要导入的文件名。
    -j同时运行的插入操作数(默认为 1),并行操作。
    --authenticationDatabase验证数据的名称。