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 权限

案例:

MongoDB创建用户 mongodb创建数据库用户_主键

  • 登录用户:
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做修改时,如果主键存在,做覆盖,如果主键不存在,自动创建主键。