MongoDB
一、创建用户
db.createUser({user:"aaa",pwd:"aaa",roles:[{role:"root",db:"admin"}]})
注:末尾分号可写可不写
user:用户,对应字符串
pwd:密码,对应字符串
roles:角色,权限,对应数组
role:角色名
db:用户所属数据库
附:Mongo支持的角色
---- | ---- |
read | 允许用户读取指定数据库 |
readWrite | 允许用户读写指定数据库 |
dbAdmin | 允许用户在指定数据库中执行管理函数 |
userAdmin | 允许用户向 system.users 集合写入,可以找到指定数据库里创建、删除和管理用户 |
clusterAdmin | 赋予用户所有分片和辅助集相关函数的管理权限(admin数据库) |
readAnyDatabase | 赋予用户所有数据库的读权限(admin数据库) |
readWriteAnyDatabase | 赋予用户所有数据库的读写限权(admin数据库) |
userAdminAnyDatabase | 赋予用户所有数据库的 userAdmin 权限(admin数据库) |
dbAdminAnyDatabase | 赋予用户所有数据库的 dbAdmin 权限 |
案例:
- 登录用户:
db.admin("one","one");
- 查看数据库:
show dbs;
- 查看所有用户:
db.system.users.find();
二、数据库管理
- 创建数据库
use 数据库名称
注:创建后的数据库因为没有数据,所以不会持久到硬盘上
- 删除数据库
db.dropDatabase()
注:删除所在的数据库
三、MongoDB 集合管理
- 查看集合
show tables(或collections);
- 创建集合
db.createCollection("coll");
创建集合时增加特性(大括号里为集合特性):
db.createCollection("coll",{"capped":true,"size":1024});
集合特性汇总:
语言 | 类型 | 描述 |
capped | 布尔 | true,创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,会自动覆盖最早找的文档。当该值为 true 时,必须指定 size 。 |
autoinde | 布尔 | true,自动在 _id 字段创建索引,默认为 false 。 |
size | 数值 | 为固定集合指定一个最大值(以字节计)。 |
max | 数值 | 指固定集合中包含文档的最大数量。 |
- 查看集合状态
db.coll.stats();
- 删除集合
db.coll.drop();
四、MongoDB 的文档操作
在 MongoDB 中文档是指多个键及其关联的值有序地放置在一起就是文档,其实指的就是数据。MongoDB 中的文档数据结构和 JSON 基本一样,所有存储在集合中的数据都是 BSON 格式。BOSN是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。
- 增加数据到集合
db.coll.insert({"name":"aaa"});
- 插入单个文档
db.coll.insertOne({"name":"ddd"});
- 插入多个文档
db.coll.insertMany([{"name":"ccc"},{"name":"ddd"}])
- 查询文档
db.coll.find();
- save修改操作
db.coll.save({"_id": 通过主键查找所要修改的文档 ,"name":"sss"});
注:save不可以进行多条数据修改,因为主键冲突。save做修改时,如果主键存在,做覆盖,如果主键不存在,自动创建主键。