• 99 # mongo 的基本安装和配置


    关系型数据库和非关系型数据库

    • MySQL Oracle SqlServer 用一种关系模型来组织数据的数据库(查询方便,不方便拓展)
    • nosql mongo redis memcached (不同于传统的关系数据库)

    mongo 特点

    • 分布式:文档类型,值就是传统对象类型 key=>value BSON,储存复杂结构的数据
    • 性能高:不需要通过 SQL 层来进行解析(分析的过程 操作的过程 浪费性能),数据之间没有耦合,可以方便拓展,不适合复杂查询

    mongo 的安装方式

    https://www.mongodb.com/try/download/community

    选择自己的版本
    在这里插入图片描述
    我参考的是这篇文章安装的:MongoDB下载安装教程

    启动 mongodb

    手动启动:自己启动服务端,并且指向路径储存的路径,然后启动客户端,需配置环境变量

    mongod --dbpath="D:\Program Files\MongoDB\Server\4.4\data"
    mongo
    
    • 1
    • 2

    或者启动 MongoDB,再双击 mongo.exe

    在这里插入图片描述

    可执行文件的路径

    "D:\Program Files\MongoDB\Server\4.4\bin\mongod.exe" --config "D:\Program Files\MongoDB\Server\4.4\bin\mongod.cfg" --service
    
    • 1

    在这里插入图片描述
    cfg 配置文件 D:\Program Files\MongoDB\Server\4.4\bin\mongod.cfg 如下:

    在这里插入图片描述
    在这里插入图片描述
    在浏览器访问:http://127.0.0.1:27017 出现如下页面证明 mongoDb 启动成功。

    在这里插入图片描述

    mongo 的语句

    显示所有的数据库(默认免密码)

    show dbs
    
    • 1

    在这里插入图片描述
    如果数据库不存在,则创建数据库,否则切换到指定数据库。

    use DATABASE_NAME
    
    • 1

    在这里插入图片描述
    如果要查看已有集合,可以使用下面两个命令:

    show collections
    show tables
    
    • 1
    • 2

    在这里插入图片描述
    我们创建数据库kaimo,往集合 kaimo 里插入两条数据

    use kaimo
    db.kaimo.insertOne({"name":"凯小默1"})
    db.kaimo.insertOne({"name":"凯小默2"})
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    查询

    db.kaimo.find({})
    db.kaimo.find({"name": "凯小默1"})
    
    • 1
    • 2

    在这里插入图片描述

    删除

    db.kaimo.deleteOne({"name": "凯小默2"})
    
    • 1

    在这里插入图片描述

    下面创建根用户,在创建一个数据库分配这个数据库的权限,默认可以在 admin 中创建根用户,创建其他数据库,在针对某个数据库中,创建用户,赋予当前权限,下次链接这个数据库时可以登录这个账号。

    use admin
    db.createUser({user: "root", pwd: "root", roles: ["root"]})
    
    • 1
    • 2

    在这里插入图片描述
    创建一个 user 库,给集合 student 添加两条数据

    use user
    db.student.insert({name:"凯小默", age: 313})
    db.student.insert({name:"凯小默2", age: 3})
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    ObjectId 的构成

    ObjectId 是一个 12 字节的 BSON 类型字符串,按照字节顺序,依次代表:

    • 4 字节:UNIX 时间戳
    • 3 字节:表示运行 MongoDB 的机器
    • 2 字节:表示生成此 _id 的进程
    • 3 字节:由一个随机数开始的计数器生成的值
    ObjectId("65279b292d3834025d88a1b9")
    
    • 1

    MongoDB 开启安全认证,首先使用配置文件,增加参数:

    security:
      authorization: enabled
    
    • 1
    • 2

    在这里插入图片描述
    在重新启动,执行 show dbs 发现看不到数据库了

    在这里插入图片描述
    以用户管理员身份进行连接和验证

    use admin
    db.auth("root", "root")
    show dbs
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    再创建一个用户 kaimo313 去管理用户表,可读可写

    use user
    db.createUser({user: "kaimo313", pwd: "kaimo313", roles: [{role: "readWrite", db: "user"}]})
    
    • 1
    • 2

    在这里插入图片描述
    重启服务,访问 user 库里的所有集合,会提示:Warning: unable to run listCollections, attempting to approximate collection names by parsing connectionStatus

    use user
    show collections
    
    • 1
    • 2

    在这里插入图片描述

    上面的原因是因为连着的 MongoDB 中的 user 数据库它是有用户名和密码的,在没有进行登录的情况下,想直接查看数据库集合名称时,遭到了拒绝,因此,首先要进行登录操作,获得查看 collections 的权限。

    db.auth("kaimo313", "kaimo313")
    show collections
    
    • 1
    • 2

    在这里插入图片描述

    mysqlmongo
    集合
    行和列BSON

    Robo 3T

    Robo 3T:MongoDB 可视化工具

    Robo 3T v1.4.3下载地址

    我参考的是这篇:【Robo 3T】MongoDB可视化工具-- Robo 3T使用教程

    点击【Create】,选择【Connection】输入需要连接的服务端【地址】和【端口】

    在这里插入图片描述
    配置权限
    在这里插入图片描述
    双击或者链接
    在这里插入图片描述
    在这里插入图片描述
    配置user表权限
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    SpringCloud和SpringBoot版本对应关系
    新增TOP!10月SCI/SSCI/EI刊源表已更新!
    Spring、MyBatis框架和Redis数据库介绍 第1关:Spring 框架简介
    集合篇---Map集合
    HTML 基本开发方式,学会常用的 HTML 标签
    【Dotnet 工具箱】推荐一个使用Flutter编写的博客园客户端
    浅谈—IBIS入门理解(二)
    hwk2:select实现服务器并发
    【20220121】Voice conversion
    2023.09.09青少年软件编程(Python)等级考试试卷(一级)
  • 原文地址:https://blog.csdn.net/kaimo313/article/details/133777667