MongoDB体系介绍和安装

MongoDB体系介绍

NoSQL 和 MongoDB

NoSQL=Not Only SQL,支持类似SQL的功能, 与Relational Database相辅相成。其性能较高,不使用SQL意味着没有结构化的存储要求(SQL为结构化的查询语句),没有约束之后架构更加灵活。

NoSQL数据库四大家族 列存储 Hbase,键值(Key-Value)存储 Redis,图像存储 Neo4j,文档存储MongoDB

MongoDB 是一个基于分布式文件存储的数据库,由 C++ 编写,可以为 WEB 应用提供可扩展、高性能、易部署的数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富、最像关系数据库的。在高负载的情况下,通过添加更多的节点,可以保证服务器性能。

MongoDB 体系结构

在这里插入图片描述

MongoDB 和RDBMS(关系型数据库)对比

RDBMSMongoDB
database(数据库)database(数据库)
table (表)collection( 集合)
row( 行)document( BSON 文档)
column (列)field (字段)
index(唯一索引、主键索引)index (支持地理位置索引、全文索引 、哈希索引)
join (主外键关联)embedded Document (嵌套文档)
primary key(指定1至N个列做主键)primary key (指定_id field做为主键)

什么是BSON

  BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和Binary Data类型。BSON可以做为网络数据交换的一种存储形式,是一种schema-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想。

  {key:value,key2:value2} 这是一个BSON的例子,其中key是字符串类型,后面的value值,它的类型一般是字符串,double,Array,ISODate等类型。

  BSON有三个特点:轻量性、可遍历性、高效性

BSON在MongoDB中的使用

  MongoDB使用了BSON这种结构来存储数据和网络数据交换。把这种格式转化成一文档这个概念(Document),这里的一个Document也可以理解成关系数据库中的一条记录(Record),只是这里的Document的变化更丰富一些,如Document可以嵌套。

MongoDB中Document 中 可以出现的数据类型

数据类型说明解释说明Document举例
String字符串UTF-8 编码的字符串才是合法的。
Integer整型数值根据你所采用的服务器,可分为 32 位或 64 位。{key:1}
Boolean布尔值用于存储布尔值(真/假)。{key:true}
Double双精度浮点值用于存储浮点值{key:3.14}
ObjectId对象ID用于创建文档的ID{_id:new ObjectId()}
Array数组用于将数组或列表或多个值存储为一个键{arr:[“a”,“b”]}
Timestamp时间戳从开始纪元开始的毫秒数{ ts: new Timestamp() }
Object内嵌文档文档可以作为文档中某个key的value{o:{foo:“bar”}}
Null空值表示空值或者未定义的对象{key:null}
Date或者ISODate格林尼治时间日期时间,用Unix日期格式来存储当前日期或时间。{birth:new Date()}
Code代码可以包含JS代码{x:function(){}}
File文件1、二进制转码(Base64)后存储 (<16M) 2、GridFS(>16M)GridFS 用两个集合来存储一个文件:fs.files与fs.chunks 真正存储需要使用mongofiles -d gridfs putsong.mp3

MongoDB在Linux的安装

  1. 下载社区版 MongoDB 4.2.13
    去官网下载对应的MongoDB 然后上传到Linux虚拟机

  2. 将压缩包解压即可
    tar -zxf mongodb-linux-x86_64-rhel70-4.2.13.tgz

  3. 新建几个目录,分别用来存储数据和日志:

    #数据存储目录
    mkdir -p /mongodb/single/data/db
    #日志存储目录
    mkdir -p /mongodb/single/log
    
  4. 进入到MongoDB目录中新建配置文件

    vim mongod.conf
    

    配置文件内如如下, 更多配置项参考官网:https://docs.mongodb.com/v4.2/reference/configuration-options/

    systemLog:
    #MongoDB发送所有日志输出的目标指定为文件
    # #The path of the log file to which mongod or mongos should send all diagnostic logging information
        destination: file
    #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
        path: "/root/mongodb/mongodb/log/mongod.log"
    #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
        logAppend: true
    storage:
    #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
    ##The directory where the mongod instance stores its data.Default Value is "/data/db".
        dbPath: "/root/mongodb/mongodb/data/db"
        journal:
    #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
            enabled: true
    processManagement:
    #启用在后台运行mongos或mongod进程的守护进程模式。
        fork: true
    net:
    #服务实例绑定的IP,默认是localhost
        bindIp: localhost,192.168.137.144
    #bindIp
    #绑定的端口,默认是27017
        port: 27017	
    
  5. 启动服务

    ./bin/mongod -f mongo.conf
    

MongoDB启动和参数说明

```
参数 说明
dbpath 数据库目录,默认/data/db
port 监听的端口,默认27017
bind_ip 监听IP地址,默认全部可以访问
fork 是否已后台启动的方式登陆
logpath 日志路径
logappend 是否追加日志
auth 是开启用户密码登陆
config 指定配置文件
```

mongo shell 的启动

启动mongo shell
./bin/mongo
指定主机和端口的方式启动
./bin/mongo --host=主机IP --port=端口

Mongodb GUI工具

  • MongoDB Compass Community
      MongoDB Compass Community由MongoDB开发人员开发,这意味着更高的可靠性和兼容性。它为MongoDB提供GUI mongodb工具,以探索数据库交互,具有完整的CRUD功能并提供可视方式。借助内置模式可视化,用户可以分析文档并显示丰富的结构。为了监控服务器的负载,它提供了数据库操作的实时统计信息。就像MongoDB一样,Compass也有两个版本,一个是Enterprise(付费),社区可以免费使用。适用于Linux,Mac或Windows。

  • NoSQLBooster(mongobooster)
      NoSQLBooster是MongoDB CLI界面中非常流行的GUI工具。它正式名称为MongoBooster。NoSQLBooster是一个跨平台,它带有一堆mongodb工具来管理数据库和监控服务器。这个Mongodb工具包括服务器监控工具,Visual Explain Plan,查询构建器,SQL查询,ES2017语法支持等等…它有免费,个人和商业版本,当然,免费版本有一些功能限制。NoSQLBooster也可用于Windows,MacOS和Linux。

Compass-图形化界面客户端

到MongoDB官网下载MongoDB Compass,
地址:https://www.mongodb.com/download-center/v2/compass?initial=true

如果是下载安装版,则按照步骤安装;如果是下载加压缩版,直接解压,执行里面的MongoDBCompassCommunity.exe 文件即可。
在打开的界面中,输入主机地址、端口等相关信息,点击连接:在这里插入图片描述

连接后可以在里面使用MongoDB的命令行操作
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值