MongoDB 简介、特点、安装、核心概念

MongoDB 实战

  • 文档地址: https://docs.mongodb.com/manual/

简介

说明

  • 官方

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

    image-20211214132120713

  • 百度百科

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

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

总结: mongoDB 是一个非关系型文档数据库

历史

  • 2009年2月,MongoDB数据库首次在数据库领域亮相,打破了关系型数据库一统天下的局面;
  • 2010年8月, MongoDB 1.6发布。这个版本最大的一个功能就是Sharding,自动分片
  • 2014年12月, MongoDB3.0发布。由于收购了WiredTiger 存储引擎,大幅提升了MongoDB的写入性能;
  • 2015年12月,3.2版本发布,开始支持了关系型数据库的核心功能:关联。你可以一次同时查询多个MongoDB的集合。
  • 2016年, MongoDB推出Atlas,在AWS、 Azure 和GCP上的MongoDB托管服务;
  • 2017年10月,MongoDB成功在纳斯达克敲钟,成为26年来第一家以数据库产品为主要业务的上市公司。
  • 2018年6月, MongoDB4.0 发布推出ACID事务支持,成为第一个支持强事务的NoSQL数据库;
  • 2018年–至今,MongoDB已经从一个在数据库领域籍籍无名的“小透明”,变成了话题度和热度都很高的“流量”数据库。

特点

特点

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

应用场景

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

安装

传统方式

传统方式安装默认没有开启远程连接权限

# 1.下载 MongoDB
- https://www.mongodb.com/try/download/community

image-20211214103912606

# 2.将下载安装包上传到linux系统(下面的是ubuntu下的安装包)
- tar -zxf mongodb-linux-x86_64-ubuntu2004-5.0.5.tgz
- mv mongodb-linux-x86_64-ubuntu2004-5.0.5 mongodb      # 将解压出来的目录文件重命名,简洁一些 

image-20220924221023831

# 3.查看安装目录
- ls
	`bin`目录   用来存放启动mongoDB的服务以及客户端链接的脚本文件等

image-20220924221158281

image-20220924221554786

# 4. 在mongodb安装目录里创建data数据目录 和 日志文件目录 logs
	cd mongodb
	mkdir data logs

注: 启动mongodb时需要存放数据的目录和日志目录,这些目录需要提前创建,如果没有的话在启动mongodb时并不会
		自动创建,且如果这些目录不存在的话mongodb启动会失败.
# 5.启动 MongoDB 服务
	cd mongodb/bin
  ./mongod --port=27017 --dbpath=../data --logpath=../logs/mongo.log				

	`--port`    指定服务监听端口号 默认为 27017
	`--dbpath`  指定 mongodb 数据存放目录 启动要求目录必须存在
	`--logpath` 指定 mongodb 日志文件存放位置
	
注:  mongodb启动是前台运行,如果想要关闭mongodb的话直接 crtl + c 就行

image-20220924223011107

注意: 由于指定日志文件因此启动时日志输出到日志中终端不显示任何日志

# 6.客户端连接

	cd mongodb/bin/

  ./mongo --port=27017

image-20220924223650459

# 7.传统方式安装如何开启远程连接权限
启动mongodb时后面加上 --bind_ip=0.0.0.0 代表所有的ip地址都可以访问 mongodb
./mongod --port=27017 --dbpath=../data --logpath=../logs/mongo.log --bind_ip=0.0.0.0

Docker方式

docker方式安装默认开启了远程连接权限

# 1.拉取 mongodb 镜像
- docker pull mongo:5.0.5

image-20220925071540636

# 2.运行 mongo 镜像
  docker run -d --name mongo -p 27017:27017 mongo:5.0.5

image-20220925072302429

# 3.进入 mongo 容器
- docker exec -it 容器id bash
- mongo                      # 进入mongo容器之后直接输入mongo就可以进入mongodb客户端

image-20220925072416125

注:一旦进入mongodb客户端,默认进入的是 test 库,且mongodb中如果一个库没有数据,使用 show dbs; 命令不会显示这个库,但是这个库是存在的. 只有给空库插入一条数据, 之后使用 show dbs; 才会显示这个库

核心概念

mongodb中的库就类似于传统关系型数据库中库的概念,用来通过不同库隔离不同应用数据。mongodb中可以建立多个数据库。每一个库都有自己的集合和权限,不同的数据库也放置在不同的文件中。默认的数据库为"test",数据库存储在启动时指定的data目录中。

集合

集合就是 MongoDB 文档组,类似于 RDBMS (关系数据库管理系统:Relational Database Management System)中的表的概念

集合存在于数据库中,一个库中可以创建多个集合。每个集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

文档

文档集合中一条条记录,是一组键值(key-value)对(即 BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。

一个简单的文档例子如下:

{"site":"www.baizhiedu.xin", "name":"编程不良人"}

关系总结

RDBMSMongoDB
数据库数据库
集合
文档
字段
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值