NoSQL数据库之MongoDB(一)Mongo介绍与安装

MongoDB简介

        MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
        MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,是一种文档型的NoSQL数据库,因此可以存储比较复杂的数据类型。
        Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引

MongoDB的体系结构与安装

MongoDB的体系结构

        MongoDB是一个可移植的数据库,它在流行的每一个平台上都可以使用,即所谓的跨平台性,在不同的操作系统上虽然略有差别,但是从整体架构上来看,MongoDB在不同的平台上是一样的,如数据逻辑结构和数据存储等等。
        一个运行着的MongoDB数据库就可以看成是一个MongoDB Server,该Server由实例和数据库组成,在一般情况下,一个MongoDB Server机器上包含一个实例或者多个与之对应的数据库,但是在特殊情况下,如硬件投入成本或者特殊的应用需求,也允许一个Server机器上可以有多个实例或者多个数据库。
        MongoDB中一系列物理文件(数据文件、日志文件等)的集合与之对应的逻辑结构(集合、文档等)被称之为数据库,简单的说,就是数据库是由一系列与磁盘有关系的物理文件的组成。

  • 逻辑存储结构
            MongoDB的逻辑结构是一种层次结构,主要由:文档(Document)、集合(Collection)、数据库(database)这三部分组成,逻辑结构是面向用户的,用户使用MongoDB开发应用程序使用的就是逻辑结构。
    1. MongoDB的文档(Document),相当于关系数据库中的一行记录。
    2. 多个文档组成一个集合(Collection),相当于关系数据库的表。
    3. 多个集合(Collection),扩及上组织在一起,就是数据库(database)。
    4. 一个MongoDB实例支持多个数据库(database)。
    5. 文档(Document)、集合(Collection)、数据库(Database)的层次结构如下图:
      在这里插入图片描述
  • 物理存储结构
    1. 命名空间文件:后缀是ns,文件大小:16M。
    2. 数据文件:后缀是0、1、2…,而.0文件16M,.1文件32M,往后则翻倍,最大值为2G,这样可以让小数据库不浪费太多的空间,大数据库能够使用磁盘上连续的空间。通过牺牲空间,换取时间。
    3. 日志文件:注意存储的位置可能不一样
      存储在操作系统中
      系统日志文件:记录系统启动日志、警告信息等等
      journal日志文件:重做日志,即:redo日志,用于恢复
      存储在集合(collection)中
      oplog复制操作日志(只有主从复制才有)
      慢查询日志(需要配置):一般生产中大于200毫秒

MongoDB的安装配置

  • 关闭防火墙

    systemctl stop firewalld.service
    systemctl disable firewalld.service
    systemctl status firewalld.service
    
  • 安装需要的rpm包
    挂载光盘

    mount /dev/cdrom /cdrom/
    

    创建yum源,文件:/etc/yum.repos.d/rhel-media.repo

    [media]
    name=Red Hat Enterprise Linux 7.4
    baseurl=file:///cdrom
    enabled=1
    gpgcheck=1
    gpgkey=file:///cdrom/RPM-GPG-KEY-redhat-release
    

    安装net-snmp

    yum install -y net-snmp*  
    

    安装cyrus

    yum install  -y cyrus*
    

    将mongodb安装到/root/training的目录

    tar -zxvf mongodb-linux-x86_64-enterprise-rhel70-3.4.10.tgz -C ~/training/
    

    启动MongoDB
    在这里插入图片描述
    正确的启动方式:

    mongod --dbpath /data/db &
    

    检查后台进程:
    在这里插入图片描述

使用mongo shell

启动mongo shell

在这里插入图片描述
可选参数:
在这里插入图片描述

在这里插入图片描述

启动配置文件.mongorc.js

当启动的时候,mongo检查用户HOME目录下的一个JavaScript文件.mongorc.js。如果找到,mongo在首次显示提示信息前解析.mongorc.js的内容。如果你使用shell执行一个JavaScript文件或计算表达式,要么通过在命令行使用–eval选项或者指定一个.js文件给mongo,mongo会在完成JavaScript的处理后读取.mongorc.js文件。你可以使用–norc选项来阻止加载.mongorc.js。

  • 实例一:使用自定义提示信息
    • 创建与当前会话发出操作的数量提示,定义如下变量:

      cmdCount = 1;
      prompt = function() {
                   return "mongo " + (cmdCount++) + "> ";
                      }
      

      效果:
      在这里插入图片描述

    • 在mongo shell中显示数据库名和主机名:

      host = db.serverStatus().host;
      cmdCount = 1;
      prompt = function() {
                   return db+"@"+host+" " + (cmdCount++) + "> ";
                      }
      

      效果:
      在这里插入图片描述

mongo shell的基本操作

  • 显示当前数据库名称:db,将返回test数据库,这是默认的数据库
  • 切换数据库:use <数据库名称>
  • 查看所有的可用数据库:show dbs 或者 show database

mongo shell中的数据类型

在这里插入图片描述

日期类型:date

我们可以使用不同的方式来创建一个date型的数据:

  • Date():表示当前时间,插入的是一个字符串类型
  • new Date():插入的是一个isodate类型,表示格林尼治标准时间
  • ISODate():类似new Date()
    在这里插入图片描述

ObjectId

MongoDB中我们经常会接触到一个自动生成的字段:”_id”,类型为ObjectId。
在这里插入图片描述
之前我们使用MySQL等关系型数据库时,主键都是设置成自增的。但在分布式环境下,这种方法就不可行了,会产生冲突。为此,MongoDB采用了一个称之为ObjectId的类型来做主键。ObjectId是一个12字节的 BSON类型字符串。按照字节顺序,依次代表:
1. 前4个字节表示时间戳
2. 接下来的3个字节是机器标识码
3. 紧接的两个字节由进程id组成(PID)
4. 最后三个字节是随机数。

NumberLong

通常情况下mongo shell将所有的数据当作浮点值对待。mongo shell提供NumberLong()包装类处理64位整形数据。
在这里插入图片描述

NumberInt

mongo shell中提供NumberInt()构造方法表示32位整形数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值