今天,小喵将要MongoDB入门了!
不管是否成功入门,笔记还是不能少的,留痕工作还是要做的!
下面开始切入正题了!
一.基础概念
为了使大家更好的学习,让我们对mongoDB有所了解,所以请认真看这篇博文,很重要的!
在mongoDB中是通过数据库、集合、文档的方式来管理数据,下面让我们来看看mongoDB与关系型数据库的一些概念上的区别吧 :
SQL 术语/概念 | MongoDB 术语/概念 | 解释 /说明 |
database | database | 数据库 |
table | collection | 数据库表 / 集合 |
row | document | 数据记录行 / 文档 |
column | field | 数据字段 / 域 |
index | index | 索引 |
table joins | 表连接 (MongoDB 不支持) | |
primary key | primary key | 主键,MongoDB 自动在每个集合中添加_id的主键 |
1. 一个MongoDB实例可以创建多个数据库
2. 一个数据库可以创建多个集合
3. 一个集合可以包括多个文档
小喵学的时候是跟MySQL数据库对比着来学习理解上面的几个术语的
1) database --- 数据库
2) table / collections --- 数据库表 / 集合
3) row / document --- 数据记录行 / 文档
4) cloumn / field ----数据字段 / 域
这就是小喵对这几个术语的理解,大家可以参考一下哦!
温馨提示 : 以下操作,小喵是在 mongo.exe 里面完成的哦!
二 . 数据库操作 : 命令行
1. 查询全部数据库
---- 查看全部数据库
show dbs
2. 显示当前数据库
注 : 如果当前没有切换数据库 ,则默认显示 "test" , 小喵这里不巧刚好切换了一下数据库所以没办法显示效果了
--- 显示当前数据库
db
3. 创建/切换 数据库
1) 数据库存在则进行切换,切换到此数据库,不存在则创建
温馨提示 : 新创建的数据库不显示,需要至少包括一个集合.
---- 创建 / 切换 数据库
use 数据库名称
如果有则切换到数据库,没有则创建数据库,
但是刚创建的数据库是不显示的,需要至少包括一个集合
切换数据库:
创建数据库 :
在上图可以看到,我们创建了一个demo2 的数据库,但是由于里面没有包括一个集合,所以显示不出来
4. 删除数据库
注意 : 该步骤虽然放在了前面但是由于是一类所以放在了这里,需要至少包括一个集合后,数据库才可显示,那时候删除会比较明显.
--- 删除数据库 (慎用! 慎用! 慎用! )
---- 重要的事情说三遍
db.dropDatabase()
三 . 集合操作 : 命令行
集合相当于关系数据库中的表,一个数据库可以创建多个集合,一个集合是将相同类型的文档管理起来。
1. 创建集合
---- 创建集合
db.createCollection(name , options)
name : 新创建的集合名称
options : 创建参数
注 : 创建集合后,将可以通过 show dbs 命令 查看新创建的数据库
2.删除集合
--- 删除集合
db.集合名称.drop()
--- 查看集合
show collections
四 . 文档操作 : 命令行
mongodb 中 文档的格式是json格式,下面是一个样例,包括两个 key : _id主键 和 name
{
"_id" : ObjectId("5ee2deef058dbc714bb73e4c"),
"name" : "苗小喵"
}
1)插入命令
每个文档默认以_id作为主键,主键默认类型为ObjectId(对象类型)
mongodb 会自动生成主键值
---插入命令
db.集合名称.insert(document)
2)查询命令
--- 查询全部/所有
db.集合名称.find()
-- 查询符合条件的记录
db.集合名称.find(JSON条件)
-- 投影查询
db.集合名称.find(JOSN条件,{显示字段名:1,不显示字段名:0,..})
2.1)查询全部/所有
2.2)查询符合条件的记录
2.3)投影查询
3)更新文档
--- 更新文档
db.collection.update(
<query>,
<update>,
<options>
)
query:查询条件,相当于sql语句的where
update:更新文档内容
options:选项
3.1)替换文档
--- 替换文档
db.集合名称.update({替换条件},}{替换内容/替换后的样子})
--例子 :
-- 将符合条件 "name":"张三"的第一个文档替换为{"name":"张3","age":21}。
db.student.update({"name":"张三"},{"name":"张3","age":21})
3.2)$set 修改器
使用$set修改器指定要更新的key,key不存在则创建,存在则更新。
db.monkey.update({修改条件},{$set: 更新内容})
3.3) multi 替换所有
--- 替换所有
multi:false表示更新第一个匹配的文档,true表示更新所有匹配的文档。
样例 :
db.student.update({"name":"张三"},{$set:{ "age":15}},{multi:true})
4)删除文档
db.集合名称.remove(<query>)
query:删除条件,相当于sql语句中的where
--删除符合条件的文档
db.集合名称.remove(JSON条件)
-- 通过id删除
db.集合名称.remove(JSON条件中书写_id)
-- 删除所有文档
db.集合名称.remove()
五.用户操作 : 命令行
5.1) 创建用户
--- 语法格式
db.createUser({
user: "<name>",
pwd: "<cleartext password>",
customData: { <any information> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
]
})
--注意: 如果想让用户管理哪个数据库,则需要先切换到该数据库
--- 样例
-- 在admin数据库下,创建root用户,角色为root
use admin
db.createUser({
user:"root",
pwd:"root",
roles:[{role:"root",db:"admin"}]
})
内置角色
角色分类 | 取值 |
超级用户角色 | root |
数据库用户角色 | read |
readWrite | |
数据库管理角色 | dbAdmin |
dbOwner | |
userAdmin | |
集群管理角色 | clusterAdmin |
clusterManager | |
hostManager | |
clusterMonitor | |
备份恢复角色 | backup |
restore | |
所有数据库角色 | readAnyDatabase |
readWriteAnyDatabase | |
userAdminAnyDatabase | |
dbAdminAnyDatabase |
5.2)查询用户
-- 查看当前数据库下的所有用户
show users
5.3) 修改用户
-- 语法格式
db.updateUser(
"<username>",
{
customData : { <any information> },
roles : [
{ role: "<role>", db: "<database>" } | "<role>",
...
],
pwd: "<cleartext password>"
},
writeConcern: { <write concern> }
)
5.4)修改密码
-- 语法格式
db.changeUserPassword("username","newPasswd")
-- 样例
-- 修改root用户的密码为1234
use admin
db.changeUserPassword("root","1234")
5.5)删除用户
-- 语法格式
db.dropUser("用户名")
--样例
db.dropUser("root")
这些就是小喵学习到的MongoDB的一些操作哦!
希望小喵的文章可以对你有所帮助哦!
最后,请给在每天进步的自己加油!
(^_^)~喵~!!