首页 > 数据库 > > 尚学堂102——MongoDB1
1.掌握什么是mongodb?
2.掌握mongodb的配置安装
3.mongodb的用户创建和认证
4.mongodb更新用户删除用户
5.mongodb创建集合 查看删除集合
无
对应作业
MongoDB 的启动方式分为两种
1)前置启动
2)后置启动
无论哪种启动方式都需要执行 bin 目录中的 mongod 命令。MongoDB 在启动时默认的
查找数据库的路径为/data/db。如果我们数据库路径有变化,需要在该命令中通过--dbpath 参
数来指定 db 目录的路径(该路径可以是绝对路径,也可是相对路径)。
MongoDB 的默认启动方式为前置启动。所谓前置启动就是 MongoDB 启动进程后会占
用当前终端窗口。
进入到 MongoDB 的 bin 目录。

执行 bin 目录中的 mongod 命令。由于我们的 db 目录放在 mongodb 的根下,所以在执行该命令时需要通过 --dbpath 参数
指定 db 路径。
./mongod --dbpath /usr/local/mongodb/data/db/

启动后会在终端中输出一些启动信息。此时终端窗口已被启动进程所占用。我们通过启
动信息可以看到 MongoDB 默认的监听端口为 27017

按 Ctrl+C 可结束启动进程关闭 MongoDB
所谓后置启动就是以守护进程的方式启动 MongoDB。我们需要在执行 mongod 命令中
添加 --fork 参数。需要注意的是,--fork 参数需要配合着--logpath 或者是--syslog 参数使用。
--logpath 与--syslog 参数是指定 MongoDB 的日志文件。MongoDB 的日志文件可以在系统中的任意位置,本视频中我们在 mongodb 目录下创建 log 目录,在该目录中创建一个名为
mongodb.log 的日志文件。
创建 log 目录

在 log 目录中创建 mongodb.log 日志文件

后置启动 MongoDB
./mongod --dbpath /usr/local/mongodb/data/db/ --logpath /usr/local/mongodb/log/mongodb.log --fork


1使用 Ctrl+C 关闭
如果我们的启动方式是前置启动,那么直接使用快捷键 Ctrl+C 就可以关闭 MongoDB。
这种关闭方式会等待当前进行中的的操作完成,所以依然是安全的关闭方式。
2使用 kill 命令关闭
我们可以通过 Linux 的 kill 命令结束 MongoDB 进程,然后删除 data/db 目录中的
mongod.lock 文件,否则下次无法启动。但是此方法不建议使用,因为会造成数据损坏现象。

解决方法:
1、sudo kill -9 4018 杀掉子进程
2进入mongodb安装目录,删除data目录下的mongod.lock文件
3、 bin目录下:./mongod --repair
4、再次重启 :
./mongod --dbpath /usr/local/mongodb/data/db/ --logpath /usr/local/mongodb/log/mongodb.log --fork
3使用 MongoDB 的函数关闭
在 MongoDB 中提供了两个关闭数据库的函数:


db.shutdownServer()
db.runCommand(“shutdown”)
如上两个方法都需要在 admin 库中执行,并且都是安全的关闭方式。
4使用 mongod 命令关闭 MongoDB
mongod --shutdown --dbpath<数据库路径>mongod 命令的 shutdown 选项能安全的关闭 MongoDB 服务


db.createUser({
user: "<name>",
pwd: "<cleartext password>",
customData: { <any information> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
] });

db.updateUser("用户名", {"roles":[{"role":"角色名称"},{"更新项 2":"更新内容"}]})
使用 db.updateUser()函数更新密码。:可以更新其他属性

2)使用 db.changeUserPassword()函数更新密码:只能更新用户密码

1>在删除用户时需要切换到创建用户时所指定的数据库中才可以删除
2>需要使用具有 userAdminAnyDatabse 角色管理员用户才可以删除其他用户。
1 创建数据库
在 MongoDB 中创建数据库的命令使用的是 use 命令。该命令有两层含义:
1)切换到指定数据库。

2)如果切换的数据库不存在,则创建该数据库。
我们使用 use 命令创建一个名为 sxttest 的数据库。
2 查看所有数据库
我们可以通过 show dbs 命令查看当前 MongoDB 中的所有数据库。

如果开启了用户认证,则需要先登录方可查看到结果,否则不显示任何信息。
如果使用的是具备数据库管理员角色的用户,那么则可以看到 MongoDB 中的所有数据库,如果使用
的普通用户登录的那么只能查询到该用户所拥有的数据库。

用户未登录查询数据库。使用具有数据库管理员角色的用户登录查询数据库。
在查询结果中并未包含我们刚刚创建的 sxttest 数据库。因为,在 show dbs 命令中不显
示未含有任何信息的数据的库。
使用普通用户登录查询数据库。
我们在 sxt 数据库中创建一个只具备读写权限的普通用户。
使用普通用户登录并查询数据库。
3 删除数据库
在 MongoDB 中使用 db.dropDatabase()函数来删除数据库。在删除数据库之前,
需要使用具备 dbAdminAnyDatabase 角色的管理员用户登录,然后切换到需要删除的数据库,执行
db.dropDatabase()函数即可。删除成功后会返回一个{ "ok" : 1 }的 JSON 字符串。
我们现在将刚刚创建的 sxttest 删除。

1创建不带参数的集合
我们也可以根据自己的情况创建集合。在 develop 数据库中创建一个名为 dev 的集合,
该集合创建时不指定任何参数。如果开启认证,则需要使用具有数据库管理员权限的用户来
创建集合。

2创建带参数的集合
在 develop 数据库中创建一个名为 dev2 的固定集合,整个集合空间大小为 2048kb,
文档最大个数为 100。

插入文档分为哪几种,分别是什么?
三种
1.1插入单个文档
1.1.1insert 函数
语法格式为:db.COLLECTION_NAME.insert(document)。

1.1.2save 函数

1.1.3insertOne 函数

1.2插入多个文档
向集合中批量插入多个文档时,需要使用数组来存放文档。
语法格式:db.COLLECTION_NAME.insert([{},{},{}.....])。
1.2.1insert 或者 save 函数
1.2.2insertMany 函数
1.3通过变量插入文档
Mongo Shell 工具允许我们定义变量。所有的变量类型为 var 类型。也可忽略变量类型。
变量中赋值符号后侧需要使用小括号来表示变量中的值。我们可以将变量作为任意插入文档
的函数的参数。
语法格式:变量名=({变量值})
1.3.1通过变量插入单个文档
定义变量
document=({title:'SpringCloud',tags:['Spring Cloud Netflix','Spring Cloud Security','Spring
Cloud Consul']})插入文档
1.3.2通过变量插入多个文档
我们也可以在变量中定义多个文档。
语法结构:变量名=([{},{},{},....])
插入文档我们现在将多个文档放入到了一个变量中,所以在插入数据时,可直接使用插入单个文档的函数。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3126234/ ,如需转载,请注明出处,否则将追究法律责任。