mac mongodb6.x命令行增删改查的使用

输入mongosh进入

showdbs

 

 使用use + 数据库名字切换数据库

 不需要手动建表,插入一条数据,就自动创建表,同时完成数据的插入

增:

db.user.insertOne({name:"zhangsan",age:18})

db.user.find() //查询表中数据

show collections显示当前数据库下所有表(mongodb中叫collection)

插入多条数据db.user.insertMany([{name:"zhangsan1",age:19},{name:"zhangsan2",age:20}]),参数json数组

查:

db.user.find()无参数表示没有查询条件

db.user.find({age: 18}) //age=18

db.user.find({age: {$gt: 19}}) //age>19

gt: 表示>; lt: 表示< ; gte: 表示>=;lte: 表示<= (g:greater,t:than,e:equal)

 

db.user.find({age: {$gt: 19, $lt: 22}}), age在 (19,22)之间

//模糊查询,性能不佳,数据量大时需要借助第三方库

db.user.find({name: /zhang/}) //包含zhang

db.user.find({name: /^z/}) //查找以z开头

db.user.find({name: /n$/}) //以n结尾

db.user.find({}, {age:1}) //查询结果只包括age这一列,第一个{}里可以添加查询条件

db.user.find().sort({age: 1}) //age升序, "age": -1降序

db.user.find().limt(5) //查询前5条数据

db.user.find().skip(10)//查询10条之后的数据

db.user.find().count() //计数

db.user.find({$or: [{age:22}, {age: 25}]}) //查询age=22或者age=25的数据

db.user.findOne() //查询第一条

改:

db.user.updateOne({"name":"zhangsan"},{$set: {"name":"zangshan"}})

第一个参数是查询,第二个参数是要改的内容

 删:

db.user.deleteOne({nam: "zangshan"})

db.user.deleteMany({age: 19})

 

删除表

db.user.drop()

 

删除数据库:

db.dropDatabase()

 索引:

db.user.ensureIndex({"name":1},{"name": "name_index"}) //创建索引,第二个参数给索引设置名字,没有则默认

db.user.ensureIndex({"name":1,"age":-1}) //复合索引,创建了name和(name_age的索引),age没有单独索引。因此如果想用到复合索引,必须在查询条件中包含复合索引中的前N个索引列

db.user.ensureIndex({"name":1},{"unique",true}) //唯一索引,则集合中的name的值不能重复

db.user.dropIndex({"name":1}) //删除索引

db.user.getIndexes() //获取当前集合的索引

mongo数据库设置权限

1.数据库用户角色:read、readWrite;

2.数据库管理角色:dbAdmin、dbOwner、userAdmin;

3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

4.备份恢复角色:backup、restore;

5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

6.超级用户角色:root

//这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

其中MongoDB默认是没有开启用户认证的,也就是说游客也拥有超级管理员的权限。userAdminAnyDatabase:有分配角色和用户的权限,但没有查写的权限,不能用作备份。

use admin //切换到admin

db.createUser({"user":"root","pwd":"123456","roles":[{"role":"root", "db": "admin"}]})

show users //显示当前所有用户

db.dropUser("root")

db.updateUser("root", {"pwd":"111111"}) //修改密码

 打开mongo配置文件,vi /usr/local/etc/mongod.conf

增加如下配置

security:

  authorization: enabled

systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /usr/local/var/mongodb
net:
  bindIp: 127.0.0.1, ::1
  ipv6: true
security:
  authorization: enabled

重启mongo服务

brew services restart mongodb/brew/mongodb-community

 设置权限登陆后,游客就不能够再随意查看数据库了

mongosh admin -u root -p 111111,使用用户名和密码来登陆

//给指定数据库test1创建owenr

use test1

db.createUser({"user":"zhang","pwd":"123456","roles":[{"role":"dbOwner", "db": "test1"}]})

mongosh test1 -u zhang -p 123456 //以zhang身份连接数据库test1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值