MongoDB增删改查
查询数据库: show dbs
进入数据库: use MYDB
查询数据库中表: show tables
在mongo中创建新的用户 并赋予相应权限:
db.createUser({
user:<name_string>, #字符串
pwd:<password_string>, #字符串
roles:[{role:<role_name>,db:<db_name>}] #数组+对象
})
user文档字段介绍: user字段,为新用户的名字; pwd字段,用户的密码; cusomData字段,为任意内容,例如可以为用户全名介绍; roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色; 在roles字段,可以指定内置角色和用户定义的角色。
Built-In Roles(内置角色):
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
- 内部角色:__system
创建用户
例如:给admin添加一个root用户
> use admin
switched to db admin
> db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
mongodb.conf文件中加入 auth=true
验证用户
> use admin
switched to db admin
> db.auth("admin","123456")
1
删除用户
db.dropUser(<user_name>) 删除某个用户,接受字符串参数
db.dropAllUser() 删除当前库的所有用户
注意: 在mongo4.0版本中 配置用户认证需要在mongod.cfg中
security:
authorization: enabled
重新启动服务: mongod -f "C:\Program Files\MongoDB\Server\4.0\bin\mongod.cfg"
增加
语法: db.collectionName.insert({json对象});
1. 增加单个文档,json对象格式
db.user.insert({name:'lee',age:23,sex:'0'});
2. 增加多个文档,数组格式
db.user.insert([{name:'lee',age:21,sex:'1'},{name:'lee3',age:24,sex:'0'}]);
删除
语法: db.collection.remove(查询条件, num); 第二个参数是整数型,代表删除的个数;默认是0(删除全部文档)
1. 将age等于21的全部删除
db.user.remove({age:'24'})
2. 删除 1 个 name=lee 的文档
db.user.remove({name:'lee'},1)
修改
语法: db.collection.update(查询条件,新值);
1. 将 name等于lee3 的文档 全部更新
db.user.update({name:lee3},{name:"lee"})
2. 修改一个文档的字段,必须使用$set:{属性:'值'}
db.user.update({name:'lee3'},{$set:{name:'haha'}})
查询
语法: db.collection.find(查询条件,查询的列);
1. 查询一个表中的所有文档
db.user.find()
2.查询特定文档
db.user.find({name:'long'})
数据库迁移 :
使用mongo自带命令来进行迁移数据库,先导出集合数据再导入数据库中
数据导出:mongoexport -d dbname -c collectionname -o filepath --type json/csv -f field
数据导入:mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field
连接远程mongodb备份导入导出
连接远程数据库:mongo -u username -p pwd host:post/database(数据库名)
注:当该用户有相应权限时,可以查看collection==>查看集合命令:show collections
备份导出:mongodump -h dbhost -d dbname -o dbdirectory
备份恢复:mongorestore -h dbhost -d dbname dbdirectory
可视化工具迁移
详细步骤:https://jingyan.baidu.com/article/63f236287e91c40208ab3d11.html