最近用到了mongodb,正好重新整理一下mongodb的相关知识
- 基本使用
## 设置管理员
use admin
db.createUser(
{
user: "username",
pwd: "passwd",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
mongo --host hostname --port portNumber -u username -p password --authenticationDatabase "admin" ## 进入mongo数据库
db.version(); ## 当前db版本
db.stats(); ## 显示当前db状态
show users:## 显示用户
show dbs; ## 查询所有数据库
use databasename ; ## 切换数据库,如果该数据库不存在,就创建该数据库
db.getName(); ## 查看当前使用的数据库
show collections:## 显示当前数据库中的集合(类似关系数据库中的表)
db.collectionName.drop() ## 删除collectionName这个集合
db.dropDatabase(); ## 删除当前使用数据库
- 备份与恢复
mongodump --host hostname --port portNumber -u username -p password --authenticationDatabase=admin -d databasename -o /opt/backup/backupname ## 备份一个数据库
mongorestore --host hostname --port portNumber -u username -p password --authenticationDatabase=admin -d databasename /opt/backup/backupname ## 还原一个数据库
PS: mongodump导出的是bson格式,是二进制形式,不过可以使用mongo自带的bsondump命令查看里面的数据,而mongoexport导出的则是文本,可以是csv、json格式。JSON可读性强但体积较大,BSON则是二进制文件,体积小但对人类几乎没有可读性。在一些mongodb版本之间,BSON格式可能会随版本不同而有所不同,所以不同版本之间用mongodump/mongorestore可能不会成功,具体要看版本之间的兼容性。当无法使用BSON进行跨版本的数据迁移的时候,使用JSON格式即mongoexport/mongoimport是一个可选项。跨版本的mongodump/mongorestore个人并不推荐,实在要做请先检查文档看两个版本是否兼容(大部分时候是的)。JSON虽然具有较好的跨版本通用性,但其只保留了数据部分,不保留索引,账户等其他基础信息。使用时应该注意
参考文章:
https://www.cnblogs.com/xiaotengyi/p/6393972.html
https://www.cnblogs.com/wpjzh/p/5999363.html