mongodb密码和传统数据如mysql等有些区别: mongodb的用户名和密码是基于特定数据库的,而不是基于整个系统的。所有所有数据库db都需要设置密码。
1: 数据库的创建,用户创建和删除,用户权限的分配
1.1 查看所有数据库
show dbs
1.2 创建admin数据库(如果数据库,存在则只是切换到当前的数据库下)
use admin
1.3 创建管理员账户
db.createUser({user: "root",pwd: "Gmg_2020", roles: [ { role: "root", db: "admin" } ]})
1.4 账号
db.auth("root","Gmg_2020")
注意:这里一般情况只能授权一次。如果需要使用其他用户授权的话,需要先退出mongo,然后在进入后,重新用新账号授权。否则会出现:mongodb too many users are authenticated
1.5 创建自定义数据库(新数据库名:warehouse),并创建用户(用户名:cnc, 密码:Gmg_2020)
use warehouse
db.createUser({user:"cnc", pwd:"Gmg_2020",roles:[{role:"dbOwner",db:"mydb"}]})
1.6 删除用户
删除单个用户
db.system.users.remove({user:"mongo"})
删除所有用户
db.system.users.remove({})
其他数据相关命令:
show dbs#查看当前用户可见的所有数据库
show users #显示当前数据库下的用户信息;
use DataBaseName #切换/创建数据库
db.stats() #显示当前数据库状态
db.DropDatabase() #删除当前使用数据库
db.getName() #查看当前使用的数据库
db.version() #当前MongoDB版本
db.getMongo() #查看当前db的链接机器地址
2. Collection聚集集合
2.1 创建一个聚集集合(table)
db.createCollection("collection_name");
2.2 得到指定名称的聚集集合(table)
db.getCollection("collection_name");
2.3 得到当前db的所有聚集集合(所有的table)
db.getCollectionNames();
2.4 显示当前db所有聚集索引的状态
db.printCollectionStats();
3. mongdb的查询操作(数据库名:mydb)
3.1 插入操作
db.mydb.insert({"username":"aaaa", "password":"bbb"})
3.2 普通查找数据库
db.mydb.find()
db.mydb.find({})
3.3 json格式查找数据库
db.mydb.find().pretty()
3.4 更新数据库
更新对象(会删除其他对象的):
db.mydb.update({"name":"xiaoming"},{"name":"beijing"})
3.5 更新对象的字段:
db.mydb.update({"name":"daming"},{$set:{"age":30}})
3.6 查询去掉后的当前聚集集合中的某列的重复数据
db.TableName.distinct("columnName")
3.7 查询
db.TableName.find({age: {$gt: 18}}) 查询(条件查询age > 18的记录)
db.TableName.find({name: /Infi/}) 模糊查询name中包含Infi的数据
db.TableName.find({name: /^infi/}) 查询name中以in开头的数据
db.TableName.find().sort({age: 1}); 按照年龄排序(升序为1,降序为-1)
db.TableName.find().limit(2) 查询前2条数据
db.TableName.find().skip(1) 查询第1条以后的数据
db.TableName.find({name:"daming"}).count() 查询某个结果集的记录条数
3.8 删除数据
a.删除所有数据
db.mydb.remove();
b.按照条件删除
db.mydb.remove({"22":"女"});
c.删除几条
db.mydb.remove({"name":"张无忌"},2);
4. 开启服务
开机启动 systemctl enable mongodb.service
启动服务 systemctl start mongodb.service
关闭服务 systemctl stop mongodb.service
5. 远程连接
mongo 47.106.231.60:27017/admin -uroot -pxxx
mongo 47.106.231.60:27017/warehouse-uroot -pxxx
3. 备份和还原数据库
3.1 备份库task
./mongodump -uroot -pxxx -h 47.106.231.60:27017 -d task -o /root/task-db/
3.2 还原库task(这里的路径需要主义,多了一层)
./mongorestore -uroot -pxxx -h 47.106.231.70:27017 -d task --dir /root/task-db/task