📜  mongodb 转储和恢复 (1)

📅  最后修改于: 2023-12-03 15:17:42.279000             🧑  作者: Mango

MongoDB转储和恢复

简介

MongoDB是一个开源、高性能、面向文档存储的NoSQL数据库,其数据结构采用BSON(Binary JSON)格式进行存储,它支持丰富的查询语言和高度可扩展性。

在实际开发中,我们经常需要对MongoDB进行数据转储和恢复操作。转储操作可以将MongoDB中的数据导出到一个文件中,而恢复操作则可以将这个数据文件中的数据导入到MongoDB中。

本文将介绍如何使用MongoDB提供的命令行工具mongodump和mongorestore来进行转储和恢复操作。

安装MongoDB

在进行MongoDB的数据转储和恢复操作之前,我们需要先安装MongoDB。

安装MongoDB的方法有很多种,这里我们以Ubuntu系统为例,介绍一下如何安装MongoDB。

Ubuntu系统上安装MongoDB

在Ubuntu上安装MongoDB非常简单,我们只需要执行以下命令即可:

$ sudo apt-get update
$ sudo apt-get install -y mongodb
Mac系统上安装MongoDB

在Mac上安装MongoDB也很简单,我们可以使用brew来进行安装,执行以下命令即可:

$ brew update
$ brew install mongodb
mongodump命令

mongodump是MongoDB提供的一个命令行工具,用于将MongoDB数据库中的数据导出到一个文件中。

使用mongodump命令

使用mongodump命令非常简单,我们只需要执行以下命令即可:

$ mongodump

这个命令会将MongoDB中的所有数据导出到当前目录下一个名为dump的文件夹中,并且会自动创建多个bson文件和一个metadata.json文件,其中metadata.json文件包含了导出的数据的元数据信息。

如果我们只需要导出一个MongoDB数据库中的某个集合的数据,可以执行以下命令:

$ mongodump --collection <collection_name>

这个命令会将MongoDB中指定集合的数据导出到当前目录下,以bson格式保存。

我们还可以通过--db选项来指定需要导出的MongoDB数据库的名称,示例如下:

$ mongodump --db <database_name> --collection <collection_name>

这个命令会将MongoDB中指定数据库中指定集合的数据导出到当前目录下,以bson格式保存。

mongodump命令选项

mongodump命令还支持一些选项,可以进一步控制导出的数据。

$ mongodump --help

下面是一些重要的选项:

  • -h, --host :指定MongoDB服务器的链接地址,默认为localhost。
  • -u, --username:指定MongoDB的管理员账号。
  • -p, --password:指定管理员账号的密码。
  • -o, --out:指定导出数据保存的文件夹位置。
mongodump命令实例

假设我们已经连接上了MongoDB服务器,现在我们需要将其中一个数据库中的某个集合导出到本地文件夹:

$ mongodump --host <hostname> --port <port> --db <database_name> --collection <collection_name> --out <output_folder_path>

这个命令会将指定的MongoDB数据库中的指定集合的数据导出到指定位置。

mongorestore命令

mongorestore是MongoDB提供的一个命令行工具,用于将一个mongodump命令导出的数据文件恢复到MongoDB中。

使用mongorestore命令

使用mongorestore命令也非常简单,我们只需要执行以下命令即可:

$ mongorestore

这个命令会将mongodump命令导出的数据恢复到MongoDB中。

如果我们只需要恢复mongodump命令导出的某个数据库的数据,可以执行以下命令:

$ mongorestore --db <database_name> <input_folder_path>

这个命令会将指定的数据文件恢复到指定的MongoDB数据库中。

mongorestore命令选项

mongorestore命令还支持一些选项,可以进一步控制导入的数据。

$ mongorestore --help

下面是一些重要的选项:

  • -h, --host:指定MongoDB服务器的链接地址,默认为localhost。
  • -u, --username:指定MongoDB的管理员账号。
  • -p, --password:指定管理员账号的密码。
  • -d, --db:指定需要恢复数据的MongoDB数据库名称。
  • -c, --collection:指定需要恢复的集合名称。
  • --drop:在恢复数据之前先删除与恢复的数据集合名称相同的集合。
mongorestore命令示例

假设我们已经连接上了MongoDB服务器,现在我们需要将mongodump命令导出的数据库中的数据恢复到MongoDB服务器中:

$ mongorestore --host <hostname> --port <port> --db <database_name> <input_folder_path>

这个命令将导入指定的mongodump导出的数据,如果数据库中已经存在相同的集合,则会先删除数据库中的原有数据。

参考文献