当前位置:   article > 正文

MongoDB超详细教程(保姆级)_mongodb教程

mongodb教程

MongoDB

一、简介

1. 简单介绍

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

2. 业务应用场景

传统的关系型数据库(如MySQL),在数据操作的三高需求以及应对Web2.0的网站需求面前,显得力不从心,而 MongoDB可应对“三高“需求

  • High performance:对数据库高并发读写的需求

  • Huge Storage:对海量数据的高效率存储和访问的需求

  • High Scalability && High Availability:对数据库的高可扩展性和高可用性的需求

具体应用场景

  • 社交场景,使用 MongoDB存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。
  • 游戏场景,使用 MongoDB存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、高效率存储和访问。
  • 物流场景,使用 MongoDB存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来
  • 物联网场景,使用 MongoDB存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。
    视频直播,使用 MongoDB存储用户信息、点赞互动信息等。

这些应用场景中,数据操作方面的共同特点是:

(1)数据量大

(2)写入操作频繁(读写都很频繁)

(3)价值较低的数据,对事务性要求不高

对于这样的数据,我们更适合使用 MongoDB来实现数据的存储。

3. 什么时候选择MongoDB

  • 应用不需要事务及复杂join支持

  • 新应用,需求会变,数据模型无法确定,想快速迭代开发

  • 应用需要2000-3000以上的读写QPS(更高也可以)

  • 应用需要TB甚至PB级别数据存储

  • 应用要求存储的数据不丢失

  • 应用需要99.999%高可用

  • 应用需要大量的地理位置查询、文本查

相对MySQL,在以上以用场景可以以更低的成本解决问题(包括学习、开发、运维等成本)

4. 体系机构

在这里插入图片描述

5. 数据类型

MongoDB的最小存储单位就是文档document对象。文档document对象对应于关系型数据库的行。数据在MongoDB中以BSON(Binary-JSON)文档的格式存储在磁盘上。

BSON(Binary Serialized Document Format)是一种类json的一种二进制形式的存储格式,简称 Binary JSON;BSON和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和Bin Data类型。

BSON采用了类似于C语言结构体的名称、对表示方法,支持内嵌的文档对象和数组对象,具有轻量性、可遍历性、高效性的三个特点,可以有效描述非结构化数据和结构化数据。这种格式的优点是灵活性高,但它的缺点是空间利用率不是很理想。

BSON中,除了基本JSON类型: string,integer,boolean,double,null,array和object,mongo还使用了特殊的数据类型。这些类型包括 date, object id, binary data, regular expression和code。每一个驱动都以特定语言的方式实现了这些类型,查看你的驱动的文档来获取详细信息

BSON数据类型参考列表:
在这里插入图片描述

提示
shell默认使用64位浮点型数值。{“x”:3.14或{“x”:3}。对于整型值,可以使用NumberInt(4字节符号整数)或 NumberLong(8字节符号整数),{“x”:NumberInt(“3” ){“x”:NumberLong(“3”)}

6. 特点

  1. 高性能
    MongoDB提供高性能的数据持久性。特别是,

对嵌入式数据模型的支持减少了数据库系统上I/O活动。

索引支持更快的查询,并且可以包含来自嵌入式文档和数组的键。(文本索引解决搜索的需求、TTL索引解决历史数据自动过期的需求、地理位置索引可用于构建各种O2O应用)

mmapv1、 wiredtiger、 mongorocks( rocks)、 In-memory等多引擎支持满足各种场景需求

Gridfs解决文件存储的需求

  1. 高可用性
    MongoDB的复制工具称为副本集( replica set),它可提供自动故障转移和数据冗余

  2. 高扩展性
    MongoDB提供了水平可扩展性作为其核心功能的一部分。

分片将数据分布在一组集群的机器上。(海量数据存储,服务能力水平扩展)

从3.4开始,MoηgoDB支持基于片键创建数据区域。在一个平衡的集群中, MongoDB将一个区域所覆盖的读写只定向到该区域内的那些片。

  1. 丰富的查询支持
    MongoDB支持丰富的査询语言,支持读和写操作(CRUD),比如数据聚合、文本搜索和地理空间查询等

  2. 其他特点

如无模式(动态模式)、灵活的文档模型

二、Windows安装&启动&连接

1. 下载压缩包

下载地址:https://www.mongodb.com/try/download/community

这里以zip的格式进行下载
在这里插入图片描述

附加:mongodb的命名格式: x.y.z

- y为奇数表示当前版本为开发版,如:1.5.2、4.1.13
- y为偶数表示当前版本为稳定版,如:1.6.3、4.0.10
- z为修正版本号,越大越好
  • 1
  • 2
  • 3

2. 解压

下载完成后得到压缩包,解压;其中的bin目录就存放着mongodb相关的命令
在这里插入图片描述

3. 安装服务

首先要在安装目录里创建两个目录:

  • 数据目录:data
  • 日志目录:logs
    在这里插入图片描述

然后以管理员模式,切换到安装目录下的bin目录运行以下格式命令来指定mongdb的数据及日志目录

mongod --install --dbpath 数据目录 --logpath 日志目录\日志名称 
  • 1

注意整个文件的路径中不能包含中文,中文,中文!踩过坑!

具体的代码为如下所示:

mongod --install --dbpath D:\JAVA_Environment\MongoDB\mongodb-win32-x86_64-windows-4.4.2\data --logpath D:\JAVA_Environment\MongoDB\mongodb-win32-x86_64-windows-4.4.2\logs\mongodb.log
  • 1

在这里插入图片描述

没有任何报错和提示,则代表MongoDB服务创建成功

我们可以进行验证,win+r输入services.msc
在这里插入图片描述

看到MongoDB服务即成功

补充一下:如果想要删除MongoDB服务的话

SC DELETE MongoDB
  • 1

4. 启动服务

输入以下命令启动服务

net start mongodb
  • 1

在这里插入图片描述
输入http://localhost:27017/如果看到以下内容,代表启动成功

在这里插入图片描述

5. shell连接登录&退出

输入以下命令进行登录与退出

#登录
mongo
mongo --host=localhost --port=27017

#退出
exit	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

相关语法

mongod --install --dbpath 数据目录 --logpath 日志目录\日志名称	#创建服务
mongod --remove	    #卸载服务		
net start mongodb	#启动服务
net stop mongodb	#关闭服务
mongod #是处理MongoDB系统的主要进程。它处理数据请求,管理数据存储,和执行后台管理操作。当我们运行mongod命令意味着正在启动MongoDB进程,并且在后台运行。
  • 1
  • 2
  • 3
  • 4
  • 5

6. Compass图形化连接登录

MongoDB的GUI。直观地浏览您的数据。在几秒钟内运行查询。借助完整的CRUD功能与您的数据进行交互。查看和优化您的查询性能。在Linux,Mac或Windows上可用。Compass使您能够做出更明智的索引,文档验证等决策。
在这里插入图片描述

下载地址:https://www.mongodb.com/try/download/compass

点击Download下载即可,下载完成后得到压缩包
在这里插入图片描述

解压,可以看到MongoDBCompass.exe
在这里插入图片描述

双击运行,直接Next,最后Get Stated,默认选项即可
在这里插入图片描述

然后直接点击CONNECT就会连接本地的数据库localhost:27017
在这里插入图片描述

可以看到所有的数据库及相关信息
在这里插入图片描述

三、Linux安装&启动&连接

环境:阿里云服务器Centos7

1. 下载压缩包

下载地址:https://www.mongodb.com/try/download/community

选择对应的系统版本(这里为Centos7),以tgz的格式进行下载

2. 上传到服务器&解压

将下载得到的压缩包上传到服务器,这里使用xftp工具进行上传

然后解压

tar -zxvf mongodb-linux-x86_64-rhel70-4.4.4.gz
  • 1

然后将解压后的文件移至usr/local/mongodb目录下,这是我们一般存放文件的位置

mv mongodb-linux-x86_64-rhel70-4.4.4 /usr/local/mongodb
  • 1

3. 创建数据/日志存放目录

mkdir -p /u
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/751950
    推荐阅读
    相关标签
      

    闽ICP备14008679号