MongoDB 基础手册(一)

作者:云怀大师兄
博客园:https://www.cnblogs.com/yunhuai/
公众号:云怀大师兄

与Mysql概念对比
| 说明 | MySQL | MongoDB |
|---|---|---|
| 数据库 | DatatBase | DataBase |
| 数据表/集合 | Table | Collection |
| 数据行/文档 | Row | Document |
| 字段/域 | Column | field |
| 索引 | Index | Index |
| 表连接 | Join | 不支持,使用内嵌文档 |
| 主键 | Primary Key | Primary Key自动将_id设为主键 |
| 服务端 | mysqld | mongod |
| 客户端 | mysql | mongo |
数据类型
| 类型 | 说明 |
|---|---|
| String | 字符串,utf-8才是合法字符 |
| Integer | 根据服务器而不同,分32位、64位 |
| Boolean | 布尔值 |
| Double | 如果是数值,默认Double类型 |
| Array | 数组 |
| TimeStamp | 时间戳 |
| Object | 主要用于内嵌文档 |
| Null | 用于创造空值 |
| Symbol | 特殊符号 |
| Date | 日期时间 |
| Min/Max key | 将一个元素与Bson的最低值和最高值对比 |
用户管理
常用权限
| 权限 | 说明 |
|---|---|
| read | 允许读取(系统级别的集合等不能读取) |
| readAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读取权限 |
| readWrite | 允许读写 |
| readWriteAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读写权限 |
| dbAdmin | 允许用户在指定数据库中执行管理函数,如索引的创建删除,统计,访问system.profile |
| dbAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的相应dbAdmin权限 |
| userAdmin | 可以管理用户(system.users) |
| userAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的相应userAdmin权限 |
| ClusterAdmin | 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 |
| root | 只在admin数据库可用,超级管理员账号 |
创建用户
新增一个账号(user)为root,密码(pwd)为root,权限集合(roles)为:在数据库(db)为admin的库中,赋予其root的权限(role),并为此账号添加相关说明
db.createUser({"user":"root","pwd":"root",roles:[{"role":"root","db":"admin"}],"customData":{"infomation":"First MongoDB User"}})
修改用户
db.updateUser("用户名",{"pwd":"123","roles":["role":"readWriteAnyDatabase","db":"admin"]})
修改用户密码
db.changeUserPassword(""用户名,"新密码")
删除用户
需要权限:userAdmin
db.dropUser("用户名")
数据库管理
查看
show dbs
show databases
创建
use 库名,自动创建,逻辑创建,内存中创建,插入数据后写入硬盘
删除
进哪个库删哪个库
db.dropDatabase()
集合管理(Collection)
创建
db.createCollection('集合名')
向一个不存在的集合插入数据,也可创建,且效果与上一模一样
db.集合名.insert(插入的数据的json)
集合约束
db.createCollection('集合名',{'capped':true,'size':2000,'max':100,'autoIndexId':true})
| key | 含义 |
|---|---|
| cappend | 默认false 容量无限制,如果为true,就说明有限制,那么size 必须有 |
| size | 指定大小(字节),会根据设置的自动找最近的2的整数次幂或者2的整数次幂的和,比如写1000会自动变为1024,写500变为512 ,700变为 512+256=768 |
| max | 最大个数,新增时先检查容量,再检查个数 |
| autoIndexId | 自动主键创建索引,已过期,MongoDB后续会删除 |
查询
show tables
或
show collections
查看集合详情:db.集合名.stats()
删除
db.集合名.drop()


浙公网安备 33010602011771号