-
什么是MongoDB
MongoDB是一个基于
分布式
的文件存储
的数据库,有C++编写。旨在为web应用提供高性能数据存储解决方案- 分布式:可以快速进行水平扩容,方便搭建集群
- 文件存储:存储的是文件,落地到磁盘,持久化保存
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富,最像关系数据库的。支持的数据结构非常松散,是类似json的
bson
格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引 -
NoSql数据库分类
-
键值key-value存储数据库(redis)
这类数据库主要会使用到一个哈希表,这个表中有一个特定且唯一的键和一个指针指向特定的数据,比如Redis
-
列存储数据库
这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。即一个key可以对应多个value,这些列是由列家族来安排的,比如HBase
-
文档型数据库
同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储。比如json。文档型数据库可以看作是键值型数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值型数据库的部分数据批量查询消息更高,比如MongoDB,CouchDB
-
图形数据库
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它使用灵活的图形模型,并且能够扩展到多个服务器上。比如Neo4j
-
-
MongoDB数据类型
数据类型 描述 String 字符串,存储数据常用的数据类型,在MongoDB中,UTF-8编码的字符串才是合法的 Integer 整型数值,用于存储数值,根据你所采用的服务器,可分为32位和64位 Boolean 布尔值,用户存储布尔值(真/假) Double 双精度浮点值,用于存储浮点值 Min/Max keys 将一个值与BSON元素的最低值和最高值相对比 Array 用于将数组或列表多个值存储为一个键 Timestamp 时间戳,用于记录文档添加或修改的具体时间 Object 用于内嵌文档 Null 用于创建空值 Symbol 符号,该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言 Date 日期时间,用UNIX时间格式来存储当前日期或时间,可以指定自己的日期时间;创建Date对象,传入年月日信息 -
MongoDB 用户安全校验
MongoDB中的常用权限
权限名 描述 read 允许用户读取指定数据库 readWrite 允许用户读写指定数据库 dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建,删除,查看统计或访问system.profile userAdmin 允许用户向system.users集合写入。可以在指定的数据库里创建,删除和管理用户 clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限 readWriteDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限 userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限 root 只在admin数据库中可用,超级账号,超级权限 -
创建用户
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代表失败
-
修改用户
use admin db.updateUser("guest", {"pwd":"123", "roles":[{"role":"readWriteAnyDatabase", "db": "admin"}]})
db.changeUserPassword("guest", "guest")
-
删除用户
db.dropUser("guest")
MongoDB概述与用户操作
最新推荐文章于 2024-02-25 10:04:13 发布