MongoDB概述
1.NoSQL
NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型的数据库 。是一项全新的数据库革命性运动,
早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖
地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
**关系型数据库中的表都是存储一些结构化的数据,每条记录的字段的组成都一样,即使不是每条记录都需要所有的字段,
但数据库会为每条数据分配所有的字段。而非关系型数据库以键值对(key-value)存储,它的结构不固定,每一条记录
可以有不一样的键,每条记录可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间
和空间的开销。**
2.NoSQL的优缺点
- 优点:
快速的读写
低廉的成本
灵活的数据模型 - 缺点:
不提供对SQL的支持
支持的特性不够丰富
现有的产品不够成熟
3.MongoDB简介
- MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
- MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
- MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。
字段值可以包含其他文档,数组及文档数组。
4.MongoDB和关系型数据库对比
5.MongoDB基本概念
- 数据库
数据库是一个集合的物理容器。每个数据库获取其自己设定在文件系统上的文件。
一个单一的MongoDB服务器通常有多个数据库。每一个数据库都有自己的集合和权限。 - 集合
集合是一组MongoDB的文件。它与一个RDBMS表是等效的。一个集合存在于数据库中。
集合不强制执行模式。集合中的文档可以有不同的字段。
集合(collection)就是一组文档,如果说MongoDB中的文档类似于关系型数据库中的行,那么集合就如同表。
通常情况下,在一个集合中的所有文件都是类似或相关目的。 - 文档
文档(document)是MongoDB中数据的基本单元,非常类似于关系型数据库系统中的行(但是比行要复杂的多)。
文档是一组键值对。文档具有动态模式。动态模式是指,在同一个集合的文件不必具有相同一组集合的文档字段或结构,
并且相同的字段可以保持不同类型的数据。
每一个文档都有一个特殊的键”_id”,它在文档所处的集合中是唯一的,相当于关系数据库中的表的主键。
举例文档:
{
_id: ObjectId(7df78ad8902c)
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'yiibai tutorial',
url: 'http://www.yiibai.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100,
comments: [
{
user:'user1',
message: 'My first comment',
dateCreated: new Date(2011,1,20,2,15),
like: 0
},
{
user:'user2',
message: 'My second comments',
dateCreated: new Date(2011,1,25,7,45),
like: 5
}
]
}
6.总结MongoDB概述
mongodb是面向文档的数据,一条记录叫做文档,把多个文档放在一起叫做集合(mysql中的表)
文档(类似MySQL中的一条记录)—> 集合(类似MySQL中的数据表)—> 数据库
mongodb非常适合存储结构简单,数据量非常大、高并发读写的操作。
mongodb在存储关系比较复杂的数据的时候不太容易、不支持关系和联表操作,处理数据中一对多,多对多的关系的时候没有mysql容易。
CentOS7安装MongoDB3.4
MongoDB官方源中包含的依赖包
mongodb-org: MongoDB元数据包,安装时自动安装下面四个组件包:
- mongodb-org-server: 包含MongoDB守护进程和相关的配置和初始化脚本。
- mongodb-org-mongos: 包含mongos的守护进程。
- mongodb-org-shell: 包含mongo shell。
- mongodb-org-tools: 包含MongoDB的工具: mongoimport, bsondump, mongodump, mongoexport,
mongofiles, mongooplog, mongoperf, mongorestore, mongostat, and mongotop。
安装过程
1.配置MongoDB的yum源
第一步:编辑/etc/yum.repos.d/mongodb-org-3.4.repo
vim /etc/yum.repos.d/mongodb-org-3.4.repo
#添加以下内容:
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
#这里可以修改 gpgcheck=0, 省去gpg验证
[root@localhost ~]# yum makecache
第二步:要记得yum makecache
2.安装MongoDB
第三步:执行
yum -y install mongodb-org
等待安装完成
第四步:查看mongo安装位置
whereis mongod
第五步:查看修改配置文件
vim /etc/mongod.conf
3.启动和停止MongoDB
- 启动mongodb
systemctl start mongod.service
- 停止mongodb
systemctl stop mongod.service
- 查到mongodb的状态
systemctl status mongod.service
4.启动Mongo shell
终端输入:
mongo
查看所有数据库:
show dbs
远程连接MongoDB
1.关闭linux防火墙,或者开放MongoDB端口
关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
2.设置mongodb远程访问
编辑mongod.conf注释bindIp,并重启mongodb.(这句配置代表只能本机使用,所以需注释)
vim /etc/mongod.conf
重启mongodb使修改生效:
systemctl restart mongod.service