面试题答案
一键面试数据备份
mongodump命令
- 具体步骤
- 打开命令行终端,确保MongoDB的
bin
目录在系统路径中。如果不在,需进入MongoDB安装目录下的bin
目录。 - 执行命令:
mongodump --uri="mongodb://username:password@host:port/databaseName"
。其中username
和password
是数据库的认证用户名和密码(如果需要认证),host
是MongoDB服务器地址,port
是端口号,databaseName
是要备份的数据库名。若不指定数据库名,则会备份整个MongoDB实例。例如,备份本地默认实例的test
数据库:mongodump --uri="mongodb://localhost:27017/test"
。 - 备份数据会存储在当前命令执行目录下的一个与数据库同名的文件夹中。如果要指定备份数据的存储路径,可使用
-o
或--out
参数,如mongodump --uri="mongodb://localhost:27017/test" -o /backup/path
。
- 打开命令行终端,确保MongoDB的
- 关键参数
--uri
:用于指定连接MongoDB的URI,包含认证信息、服务器地址、端口和数据库名等。-o
/--out
:指定备份数据的输出目录。--collection
:如果只想备份特定集合(表),可使用此参数指定集合名,如mongodump --uri="mongodb://localhost:27017/test" --collection users
。--query
:可使用此参数来过滤备份的数据,只备份符合查询条件的数据。例如,mongodump --uri="mongodb://localhost:27017/test" --collection users --query '{"age": {"$gt": 30}}'
。
数据恢复
mongorestore命令
- 具体步骤
- 同样确保MongoDB的
bin
目录在系统路径中或进入该目录。 - 执行命令:
mongorestore --uri="mongodb://username:password@host:port/databaseName" /path/to/backup
。其中/path/to/backup
是之前使用mongodump
备份的数据目录。例如,恢复之前备份的test
数据库:mongorestore --uri="mongodb://localhost:27017/test" /backup/path/test
。 - 如果要恢复到不同的数据库,可在
--uri
中指定不同的数据库名。例如,将备份的test
数据库恢复到newTest
数据库:mongorestore --uri="mongodb://localhost:27017/newTest" /backup/path/test
。
- 同样确保MongoDB的
- 关键参数
--uri
:指定连接MongoDB的URI,用于恢复数据到指定的数据库实例和数据库。--drop
:此参数会在恢复数据前删除目标数据库中的所有集合,然后再插入备份数据。例如,mongorestore --uri="mongodb://localhost:27017/test" --drop /backup/path/test
。--collection
:如果只想恢复特定集合,可使用此参数指定集合名,如mongorestore --uri="mongodb://localhost:27017/test" --collection users /backup/path/test
。--nsInclude
/--nsExclude
:--nsInclude
用于指定只恢复匹配命名空间(数据库.集合)的集合,--nsExclude
则相反。例如,mongorestore --uri="mongodb://localhost:27017/test" --nsInclude "test.users" /backup/path/test
只恢复test
数据库中的users
集合。