MongoDB概述与用户操作

  1. 什么是MongoDB

    MongoDB是一个基于分布式文件存储的数据库,有C++编写。旨在为web应用提供高性能数据存储解决方案

    • 分布式:可以快速进行水平扩容,方便搭建集群
    • 文件存储:存储的是文件,落地到磁盘,持久化保存

    MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富,最像关系数据库的。支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引

  2. NoSql数据库分类

    • 键值key-value存储数据库(redis)

      这类数据库主要会使用到一个哈希表,这个表中有一个特定且唯一的键和一个指针指向特定的数据,比如Redis

    • 列存储数据库

      这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。即一个key可以对应多个value,这些列是由列家族来安排的,比如HBase

    • 文档型数据库

      同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储。比如json。文档型数据库可以看作是键值型数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值型数据库的部分数据批量查询消息更高,比如MongoDB,CouchDB

    • 图形数据库

      图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它使用灵活的图形模型,并且能够扩展到多个服务器上。比如Neo4j

  3. MongoDB数据类型

    数据类型描述
    String字符串,存储数据常用的数据类型,在MongoDB中,UTF-8编码的字符串才是合法的
    Integer整型数值,用于存储数值,根据你所采用的服务器,可分为32位和64位
    Boolean布尔值,用户存储布尔值(真/假)
    Double双精度浮点值,用于存储浮点值
    Min/Max keys将一个值与BSON元素的最低值和最高值相对比
    Array用于将数组或列表多个值存储为一个键
    Timestamp时间戳,用于记录文档添加或修改的具体时间
    Object用于内嵌文档
    Null用于创建空值
    Symbol符号,该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言
    Date日期时间,用UNIX时间格式来存储当前日期或时间,可以指定自己的日期时间;创建Date对象,传入年月日信息
  4. MongoDB 用户安全校验

    MongoDB中的常用权限

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

    use admin;
    db.createUser({"user":"root", "pwd":"root", "roles":[{"role": "root", "db":"admin"}], "customData":{"infomation": "root mongodb user customData"}})
    

    配置文件auth=on开启验证,然后

    use admin;
    db.auth("root","root") # 返回1 代表成功,0代表失败
    
  6. 修改用户

    use admin
    db.updateUser("guest", {"pwd":"123", "roles":[{"role":"readWriteAnyDatabase", "db": "admin"}]})
    
    db.changeUserPassword("guest", "guest")
    
  7. 删除用户

    db.dropUser("guest")
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值