MongoDB(二)用户管理和Database、Collection操作

本文详细介绍了MongoDB的用户管理,包括权限设置、用户创建、删除、权限修改等步骤,以及数据库的创建、查看和删除操作。同时,讨论了MongoDB与关系型数据库在术语和数据存储上的差异,提供了MongoDB数据类型的概述。
摘要由CSDN通过智能技术生成

1 介绍

1.1 MongoDB与关系型数据库术语对比

在这里插入图片描述

1.2 MongoDB与关系型数据库存储数据对比

在这里插入图片描述

1.3 RDBMS 与 MongoDB 对应的术语

在这里插入图片描述

1.4 MongoDB的数据类型

在这里插入图片描述

2 用户管理

2.1 MongoDB中的常用权限

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

2.2 创建用户

mongodb有一个用户管理机制,对用户的管理必须先进入admin库中。

2.2.1 切换到admin库
use admin
2.2.2 创建用户
创建用户的函数格式如下:
db.createUser({ 
    user: "<name>",
    pwd: "<cleartext password>",
    customData: { <any Object Data> },
    roles: [
        { role: "<role>", db: "<database>" } | "<role>",
        ...
    ]
})

1)user:新建用户名。
2)pwd:新建用户密码。
3)customData:存放一些用户相关的自定义数据,该属性也可忽略。
4)roles:数组类型,配置用户的权限。

示例:db.createUser({user:‘bjsxt’,pwd:‘bjsxt’,roles:[{role:‘root’,db:‘admin’}],customData:{infomation:‘first user’}})

在这里插入图片描述

2.2.3 重启MongoDB

MongoDB默认不做任何的用户权限认证,如果需要进行用户权限认证,则需要在启动的时候做认证参数开启,配置如下:

dbpath=/usr/local/mongodb/data/db/
logpath=/usr/local/mongodb/logs/mongodb.log
port=27017
fork=true
auth=true
2.2.4 登录认证

登录的用户必须进入到admin库才能进行登录认证。

  1. 进入admin库
use admin
  1. 认证
db.auth('用户名', '密码');
2.2.5 查看用户

拥有用户管理权限的用户才能查看用户信息。

  • 进入admin库:use admin
  • 查看
show users
或
db.system.users.find()
2.2.6 更新用户
  • 进入admin库:use admin
  • 更新用户
db.updateUser('要更新的用户名', {新的用户数据对象});
2.2.7 修改用户密码
  • 进入admin库:use admin
  • 修改密码
db.changeUserPassword("用户名","新密码")
2.2.8 删除用户
  • 进入admin库:use admin
  • 删除用户
db.dropUser('用户名')

3 Database操作

3.1 创建数据库

在MongoDB中创建数据库的命令使用的是use命令。该命令有两层含义:

  • 切换到指定数据库。
  • 如果切换的数据库不存在,则创建该数据库。

我们使用use命令创建一个名为sxttest的数据库。

use sxttest

3.2 查看数据库

我们可以通过show dbs | show databases 命令查看当前MongoDB中的所有数据库。

3.3 删除数据库

在MongoDB中使用db.dropDatabase()函数来删除数据库。

在删除数据库之前,需要使用具备dbAdminAnyDatabase角色的管理员用户登录,然后切换到需要删除的数据库,执行db.dropDatabase()函数即可。删除成功后会返回一个{ “ok” : 1 }的JSON字符串。

4 Collection操作

MongoDB中的集合是一组文档的集,相当于关系型数据库中的表。

4.1 创建集合

MongoDB使用db.createCollection()函数来创建集合。
语法格式:

db.createCollection(name, options)

name: 要创建的集合名称。
options: 可选参数, 指定有关内存大小及索引的选项。

  • options 可以是如下参数。
    在这里插入图片描述
    在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。
4.1.1 默认创建集合

在MongoDB中,我们也可以不用创建集合,当我们插入一些数据时,会自动创建集合,并且会使用文档管理命令中的集合名称作为集合的名称。文档管理命令后续课程详解。
向库中插入一条数据

db.collname.insert({'name':'bjsxt'});
show dbs;
4.1.2 函数创建集合
4.1.2.1 无参数创建集合

我们也可以根据自己的情况创建集合。在数据库中创建一个名为test的集合,该集合创建时不指定任何参数。

db.createCollection('test')
4.1.2.2 有参数创建集合

在数据库中创建一个名为test2的固定集合,整个集合空间大小为2000000kb,文档最大个数为1000。

db.createCollection('test2', {'capped':true, 'size':2000000, 'max':1000});

4.2 查看集合

如果要查看已有集合,可以使用 show collections 或 show tables 命令。

show collections
show tables

在这里插入图片描述

4.3 查看集合详情

如果要查看已有集合的详情,可以使用 db.集合名.stats() 命令。

db.test2.stats();

在这里插入图片描述

4.4 删除集合

如果我们要删除集合,需要先切换到需要删除集合所在的数据库,使用drop()函数删除集合即可。

删除集合的语法格式为:db.集合名称.drop()。

删除test2集合
db.test2.drop();
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值