首页 > 编程学习 > mongoDB学习笔记(正在完善中)

mongoDB学习笔记(正在完善中)

发布时间:2022/8/19 0:35:32
  1. 打开mongo shell

mongo

  1. 添加超级管理员账户

use admin  切换到admin数据库

db.createUser({user: 'myadmin', pwd: 'myadmin', roles:[{role: 'userAdminAnyDatabase', db:'admin'}]})

  1. 验证用户   db.auth(username, password)
  2. 执行查看命令(执行下面命令必须验证用户)

show users   查看用户是否创建成功【必须使用管理员账户】

show dbs    查看数据库列表

show collections   查看集合列表

mongodb 有哪些权限:

read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

 

创建数据库  use database_name

  use wll

注意:此时新创建的数据库并不在列表中,必须要插入至少一条数据才会显示

插入数据之前,需要给新的数据库添加管理用户

db.createUser({user: 'test', pwd: 'test', roles:[{role: 'readWrite', db: 'wll'}]})

注意:如果已经验证过用户,是不能直接验证其他用户,否则会报错:logical sessions can't have multiple authenticated usersmongDB不允许一次会话认证多个用户

解决方案:退出当前shell窗口,或者新建shell窗口,重新认证auth认证登录

  1. 重新登录mongoDB后,
  2. 切换到目标数据库 use wll
  3. 验证用户  db.auth(‘test’, ‘test’)
  4. 最后就可以正常执行命令  

第二部分 查询语句

以集合movie为例进行查询操作

查询所有记录 db.movie.find();

db.userInfo.find({"age": 22});  age=22

db.userInfo.find({age: {$gt: 22}});   age>22

db.userInfo.find({age: {$gte: 25}});

db.userInfo.find({age: {$gte: 23, $lte: 25}});   age>=23 and age <= 25

db.userInfo.find({age: {$ne: 25}});

 

查询 name 中包含 mongo 的数据 模糊查询用于搜索

db.userInfo.find({name: /mongo/});

查询指定列 name、age 数据, age > 25

db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});

排序sort

按照年龄排序 1 升序 -1 降序
升序:db.userInfo.find().sort({age: 1});

Limit 限制返回条数

查询前 5 条数据

db.userInfo.find().limit(5);

查询 10 条以后的数据

db.userInfo.find().skip(10);

查询在 6-10条 之间的数据

db.userInfo.find().limit(10).skip(5);

or 查询

db.userInfo.find({$or: [{age: 22}, {age: 25}]});

and 查询 

name = zhangsan, age = 22 的数据

db.userInfo.find({name: 'zhangsan', age: 22});

统计数量

db.userInfo.find({age: {$gte: 25}}).count();

 

第三部分  插入数据

第四部分   删除数据

第五部分 更新数据

 

参考博客

https://blog.csdn.net/qq_41767116/article/details/125586683

Copyright © 2010-2022 mfbz.cn 版权所有 |关于我们| 联系方式|豫ICP备15888888号