1. MongoDB数据导出
数据导出是将MongoDB中的数据库或集合中的数据导出到指定的文件中,以备份、迁移或分享数据。MongoDB提供了mongodump工具来导出数据。
1.1 mongodump语法
mongodump --host <hostname> --port <portnumber>
[--username <username> --password <password>]
[--authenticationDatabase <dbname>]
[--db <database> --collection <collection>]
[--query <json>][--out <out>]
其中:
--host: MongoDB所在服务器的主机名或IP地址。
--port: MongoDB所在服务器的端口号,默认为27017。
--username: MongoDB所在服务器的用户名。
--password: MongoDB所在服务器的密码。
--authenticationDatabase: 用户认证所在的数据库,默认为admin。
--db: 要导出数据的数据库名称。
--collection: 要导出数据的集合名称。
--query: 指定导出数据的查询条件。
--out: 指定导出数据的文件路径。
1.2 mongodump案例
以下是一个简单的导出名为test的数据库中的people集合的命令:
mongodump --db test --collection people --out /data/backup
这个命令将连接到默认的localhost:27017 MongoDB实例,并将名为test数据库中的people集合导出到/data/backup目录下。
2. MongoDB数据导入
数据导入是将以前导出的数据导入到MongoDB数据库的过程。MongoDB提供了mongorestore工具来导入数据。
2.1 mongorestore语法
mongorestore --host <hostname> --port <portnumber>
[--username <username> --password <password>]
[--authenticationDatabase <dbname>]
[--db <database> --collection <collection>]
[<path>]
其中:
--host: MongoDB所在服务器的主机名或IP地址。
--port: MongoDB所在服务器的端口号,默认为27017。
--username: MongoDB所在服务器的用户名。
--password: MongoDB所在服务器的密码。
--authenticationDatabase: 用户认证所在的数据库,默认为admin。
--db: 要导入数据的数据库名称。
--collection: 要导入数据的集合名称。
<path>: 包含导入数据的文件或目录。
2.2 mongorestore案例
以下是一个简单的命令来导入以前导出的数据:
mongorestore /data/backup
这个命令将连接到默认的localhost:27017 MongoDB实例,并恢复在/data/backup目录中找到的所有备份文件。
3. MongoDB集合的数据导入导出
除了使用mongodump和mongorestore导入和导出整个数据库外,它们也可以用于处理一个集合中的数据。
3.1 MongoDB集合的导出
以下是一个简单的命令来导出集合中的数据:
mongoexport -d <database> -c <collection> -o <filename>
其中:
-d: 要导出数据的数据库名称。
-c: 要导出数据的集合名称。
-o: 指定导出数据的文件路径。
3.2 MongoDB集合的导入
以下是一个简单的命令来导入以前导出的数据:
mongoimport -d <database> -c <collection> --file <filename>
其中:
-d: 要导入数据的数据库名称。
-c: 要导入数据的集合名称。
--file: 包含要导入数据的文件。
4. MongoDB副本集数据导出和导入
数据导出和导入MongoDB副本集比导出和导入单个MongoDB节点稍微复杂一些。
4.1 数据导出
以下是一个简单的命令来导出MongoDB副本集中的数据:
mongodump --host <hostname> --port <portnumber>
[--username <username> --password <password>]
[--authenticationDatabase <dbname>]
[--oplog]
[--out <out>]
该命令中的--oplog选项允许mongodump导出副本集的操作日志。这在导入操作日志时对于创建副本集的节点非常有用。
4.2 数据导入
以下是一个简单的命令来导入以前导出的数据到MongoDB副本集:
mongorestore --host <hostname> --port <portnumber>
[--username <username> --password <password>]
[--authenticationDatabase <dbname>]
[--oplogReplay]
[<path>]
该命令中的--oplogReplay选项允许mongorestore回放操作日志,使新的节点可以保持与原始节点的同步。
总结
本文讨论了MongoDB数据的导入和导出的过程,详细说明了mongodump和mongorestore工具的使用方法,以及如何导出和导入单个集合和MongoDB副本集的数据。这些工具在备份、迁移和分享MongoDB数据时非常有用。