mongodb的使用

最近用到了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