ITPub博客

首页 > 数据库 > > 尚学堂102——MongoDB1

尚学堂102——MongoDB1

作者:浪花小雨滴 时间:2020-05-12 11:34:19 0 删除 编辑

学习主题:MongoDb

学习目标:

1.掌握什么是mongodb?

2.掌握mongodb的配置安装

3.mongodb的用户创建和认证

4.mongodb更新用户删除用户

5.mongodb创建集合 查看删除集合




对应视频:

itbaizhan.cn/course/id/

对应文档:

无

对应作业

  1. Linux软件安装-安装mongodb
    1. 在Linux系统中如何启动mongodb?


MongoDB 的启动方式分为两种

1)前置启动

2)后置启动

无论哪种启动方式都需要执行 bin 目录中的 mongod 命令。MongoDB 在启动时默认的

查找数据库的路径为/data/db。如果我们数据库路径有变化,需要在该命令中通过--dbpath 参

数来指定 db 目录的路径(该路径可以是绝对路径,也可是相对路径)。

    1. mongodb前置启动?


    MongoDB 的默认启动方式为前置启动。所谓前置启动就是 MongoDB 启动进程后会占

    用当前终端窗口。

    进入到 MongoDB 的 bin 目录。



    执行 bin 目录中的 mongod 命令。由于我们的 db 目录放在 mongodb 的根下,所以在执行该命令时需要通过 --dbpath 参数

    指定 db 路径。

    ./mongod --dbpath /usr/local/mongodb/data/db/




    启动后会在终端中输出一些启动信息。此时终端窗口已被启动进程所占用。我们通过启

    动信息可以看到 MongoDB 默认的监听端口为 27017



    按 Ctrl+C 可结束启动进程关闭 MongoDB


      1. 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. Mongodb中的数据类型有哪些?



      1. Mongodb的关闭方式?

      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 服务


      1. Mongodb的权限介绍?



      1. Mongodb创建用户的语法?

      db.createUser({

      user: "<name>",

      pwd: "<cleartext password>",

      customData: { <any information> },

      roles: [

      { role: "<role>", db: "<database>" } | "<role>",

      ...

      ] });



      1. Mongodb如何实现用户认证?



      1. Mongodb如何实现角色更新?

      db.updateUser("用户名", {"roles":[{"role":"角色名称"},{"更新项 2":"更新内容"}]})

      1. Mongodb如何完成密码更新?

      使用 db.updateUser()函数更新密码。:可以更新其他属性


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



      1. Mongodb如何删除用户,前提是什么?

      1>在删除用户时需要切换到创建用户时所指定的数据库中才可以删除

      2>需要使用具有 userAdminAnyDatabse 角色管理员用户才可以删除其他用户。

      1. Mongodb如何创建删除数据库?

      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. Mongodb如何创建集合,查看删除集合?

      1创建不带参数的集合

      我们也可以根据自己的情况创建集合。在 develop 数据库中创建一个名为 dev 的集合,

      该集合创建时不指定任何参数。如果开启认证,则需要使用具有数据库管理员权限的用户来

      创建集合。



      2创建带参数的集合

      在 develop 数据库中创建一个名为 dev2 的固定集合,整个集合空间大小为 2048kb,

      文档最大个数为 100。



      1. Mongo的文档操作?

      插入文档分为哪几种,分别是什么?

      三种

      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/ ,如需转载,请注明出处,否则将追究法律责任。

      请登录后发表评论 登录
      全部评论

      注册时间:2018-05-16

      • 博文量
        4259
      • 访问量
        39859