MongoDB 概念以及安装

🌈 官方文档:https://www.mongodb.com/docs/manual/

简介

  • 官方介绍

MongoDB是一个文档数据库,旨在方便应用开发和扩展

mongodb的概念 mongodb简介_mongodb

  • 百度百科

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似jsonbson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引

  • 历史

2009年2月,MongoDB数据库首次在数据领域亮相,打破了关系型数据库一统天下的局面

2010年8月,MongoDB 1.6 发布。这个版本最大的一个功能就是Sharding,自动分片

2014年12月,MongoDB 3.0 发布。由于收购了 WiredTiger 存储引擎,大幅度提升了 MongoDB 的写入性能

2015年12月,3.2版本发布,开始支持关系型数据库的核心功能:关联。可以一次同时查询多个 MongoDB 的集合

2016年,MongoDB 推出 Atlas,在 AWS、Azure 和 GCP 上的 MongoDB 托管服务

2017年10月,MongoDB 成功在纳斯达克敲钟,成为第一个支持强事务的 NoSQL 数据库

2018年6月,MongoDB 4.0 发布退出ACID事务支持,成为第一个支持强事务的NoSQL数据库

2018年—至今,MongoDB 已经从一个在数据库领域籍籍无名的"小透明",变成了话题都和热题度都很高的"流量"数据库

特点

  • 面向集合存储,易存储对象类型的数据
  • 支持查询以及动态查询
  • 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言
  • 文件存储格式为BSON(一种JSON的扩展)
  • 支持复制和故障恢复和分片
  • 支持事务、索引、聚合、关联…

应用场景

  • 游戏应用:使用云数据库 MongoDB 作为游戏服务器的数据库,来存储用户信息。用户的游戏装备、积分等直接以内嵌文档的形式存储,方便进行查询与更新
  • 物流应用:使用云数据库 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以云数据库 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来,方便快捷且一目了然
  • 社交应用:使用云数据库 MongoDB 存储用户信息以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。并且,云数据库 MongoDB 非常适合用来存储聊天记录,因为它提供了非常丰富的查询,并在写入和读取方面都相对较快
  • 视频直播:使用云数据库 MongoDB 存储用户信息、礼物信息等
  • 大数据应用:使用云数据库 MongDB 作为大数据的云存储系统,随时进行数据提取分析,掌握行业动态

一、MongoDB 安装


工作准备

  • Linux系统与基础(个人使用CentOS 7.x镜像)
  • Xftp 文件上传软件

传统方式安装

🌈 开源地址:https://www.mongodb.com/try/download/community

mongodb的概念 mongodb简介_mongodb的概念_02

mongodb的概念 mongodb简介_云数据库_03

  • 下载自己需要的版本(这里我选择上面这幅图所选的信息),并使用 Xftp 上传到 Linux 中,并使用如下命令进行解压
[root@vinjcent mongodb]# ls
mongodb-linux-x86_64-rhel70-5.0.14.tgz
# 解压压缩包
tar -zxf mongodb-linux-x86_64-rhel70-5.0.14.tgz
[root@vinjcent mongodb]# ls
mongodb-linux-x86_64-rhel70-5.0.14  mongodb-linux-x86_64-rhel70-5.0.14.tgz
[root@vinjcent mongodb]# mv mongodb-linux-x86_64-rhel70-5.0.14 mongodb.5.0.14
[root@vinjcent mongodb]# ls
mongodb.5.0.14  mongodb-linux-x86_64-rhel70-5.0.14.tgz

mongodb的概念 mongodb简介_nosql_04

  • 查看安装目录
ls
`bin` # 目录,用来存放启动mongoDB的服务以及客户端连接的脚本文件

mongodb的概念 mongodb简介_云数据库_05

  • 启动 MongDB 服务
# 启动前,先创建data、logs目录(均在/bin目录下执行)
mkdir ../data
mkdir ../logs
# 启动mongodb
./mongod --port=27017 --dbpath=../data --logpath=../logs/mongo.log
`--port`	# 指定服务监听端口号,默认为 27017
`--dbpath`	# 指定 mongodb 数据存放目录,启动要求目录必须存在
`--logpath`	# 指定 mongodb 日志文件存放位置

mongodb的概念 mongodb简介_云数据库_06

mongodb的概念 mongodb简介_mongodb_07

# 开启另外一个窗口,查看mongo服务
ps -aux|grep mongo

mongodb的概念 mongodb简介_云数据库_08

注意:由于指定日志文件,因此启动时,日志输出到日志目录下,终端不显示任何日志,以上的连接并不是报错,而是每次连接都生成一个对应的日志文件

  • 客户端连接
# 在/mongo/bin目录下运行
./mongo --port=27017
# 进入后,查询数据库内存命令
show dbs;

mongodb的概念 mongodb简介_nosql_09

使用 Docker 安装

环境准备

  • 需要在自己的系统配置Docker容器

去 DockerHub 中查找 MongoDB 版本

DockerHub官网:https://hub.docker.com/

MongoDB镜像版本:https://hub.docker.com/_/mongo/tags

# 这里我们拉取5.0.14版本
docker pull mongo:5.0.14

# 基础运行mongodb容器
docker run --name mongo -d -p 27017:27017 mongo:5.0.14
--name	# 命名
-d		# 后台运行
-p		# 指定端口(加":"作为宿主机映射端口)

# 进入容器内部,运行mongodb客户端
# 1. 先进入容器内部
docker exec -it [容器id] bash
# 2. 运行mongodb客户端
mongo

mongodb的概念 mongodb简介_云数据库_10