千家信息网

MongoDB(1): 安装与配置及简介

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,一.简介MongoDB一种非关系型数据库(NoSql),是一种强大、灵活、可扩展的数据存储方式,因为MongoDB是文档模型,自由灵活很高,可以让你在开发过程中畅顺无比,对于大数据量、高并发、弱事务的
千家信息网最后更新 2024年11月11日MongoDB(1): 安装与配置及简介

一.简介

MongoDB一种非关系型数据库(NoSql),是一种强大、灵活、可扩展的数据存储方式,因为MongoDB是文档模型,自由灵活很高,可以让你在开发过程中畅顺无比,对于大数据量、高并发、弱事务的互联网应用,MongoDB可以应对自如,MongoDB内置的水平扩展机制提供了从百万到十亿级别的数据量处理能力,还对MapReduce式聚合的支持,以及对地理空间索引的支持。


1.1、为什么需要NoSQL

简单的说,就是为了解决在web2.0时代,出现的三高要求:

1:对数据库高并发读写的需求

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

3:对数据库的高可扩展性和高可用性的需求

而RDB(关系型数据库)里面的一些特性,在web2.0里面往往变得不那么重要,比如:

1:数据库事务一致性

2:数据库的实时读写

3:复杂的SQL查询,特别是多表关联查询

1.2、CAP定理

CAP定理, 又被称作布鲁尔定理(Eric Brewer)它指出对于一个分布式计算系统来说,不可能同时满足以下三点:

1:强一致性(Consistency):系统在执行过某项操作后仍然处于一致的,在分布式系统中,更新操作执行成功后所有的用户都应该读取到最新的值,这样的系统被认为具有强一致性

2:可用性(Availability):每一个操作总是能够在一定的时间内返回结果

3:分区容错性(Partition tolerance):系统在存在网络分区的情况下仍然可以接受请求并处理,这里网络分区是指由于某种原因网络被分成若干个孤立区域,而区域之间互不相通


根据CAP原理将数据库分成了满足CA原则、满足CP原则和满足AP原则三大类:

1:CA:单点集群,满足一致性,可用性,通常在可扩展性上不太强大,比如RDB

2:CP:满足一致性和分区容错性,通常性能不是特别高,如分布式数据库

3:AP:满足可用性和分区容错性,通常可能对一致性要求低一些,如大多数的NoSQL


BASE原理(Basically Available,Soft-state,Eventual consistency )

1:基本可用(Basically Available):系统能够基本运行、一直提供服务。

2:软状态(Soft-state):系统不要求一直保持强一致状态。

3:最终一致性(Eventual consistency):系统需要在某一时刻后达到一致性要求

1.3、NoSQL的优缺点

优点

1、扩展简单方便,尤其是水平横向扩展

(纵向扩展是指用更强的机器;横向扩展是指把数据分散到多个机器)

2、读写快速高效,多数都会映射到内存操作

3、成本低廉,用普通机器,分布式集群即可

4、数据模型灵活,没有固定的数据模型

NoSQL的缺点

不提供对SQL的支持

现有产品还不够成熟稳定,功能也还有待加强

1.4、mongodb的特点

高性能、易于使用、易于扩展、功能丰富

面向集合存储,模式自由

支持动态查询,支持javascript表达式查询

支持完全索引,包含内部对象

支持复制和故障恢复

支持副本集复制和自动故障恢复

自动处理分片

使用高效的二进制数据储存,包括大型对象

文件存储格式为BSON(一种JSON的扩展)

二.基本概念

数据库

MongoDB的一个实例可以拥有一个或多个相互独立的数据库,每个数据库都有自己的集合


文档(document):是MongoDB中数据的基本单元

非常类似于关系型数据库系统中的行(但是比行要复杂的多)

注意:

每一个文档都有一个特殊的键"_id",它在文档所处的集合中是唯一的,相当于关

系数据库中的表的主键

集合(collection:就是一组文档

类似于关系型数据库系统中的表


_id

每个文档都有个特殊的"_id",在文档所属集合中是唯一的

JavaScript shell

MongoDB自带了一个功能强大的JavaScript Shell,可以用于管理或操作MongoDB


MongoDB的单个计算机可以容纳多个独立的数据库,每一个数据库都有自己的集合和权限。

MongoDB自带简介但功能强大的JavaScript shell,这个工具对于管理MongoDB实例和操作数据作用非常大

注意:MongoDB中没有主外键的概念

三.规则与数据类型

3.1、数据库名称定义规则

1、不能是空串

2、不得含有/、\、?、$、空格、空字符等等,基本只能使用ASCII中的字母和数字

3、区分大小写,建议全部小写

4、最多为64字节

5、不得使用保留的数据库名,比如:admin,local,config

注意:数据库最终会成为文件,数据库名就是文件的名称

3.2、集合名称定义规则

1、不能是空串

2、不能包含\0字符(空字符),这个字符表示集合名的结束,也不能包含"$"

3、不能以"system."开头,这是为系统集合保留的前缀

3.3、文档的键的定义规则

1、不能包含\0字符(空字符),这个字符表示键的结束

2、"."和"$"是被保留的,只能在特定环境下用

3、区分类型,同时也区分大小写

4、键不能重复

注意:文档的键值对是有顺序的,相同的键值对如果有不同顺序的话,也是不同的文档

3.4、数据类型

数据类型 描述 举例

null 表示空值或者未定义的对象 {"x":null}

布尔值 真或者假:true或者false {"x":true}

32位整数 shell不支持该类型,默认会转换成64位浮点数,也可以使用NumberInt类,比如: {"x":NumberInt("3")}

64位整数 shell不支持该类型,默认会转换成64位浮点数,也可以使用NumberLong类,比如: {"x":NumberLong("3")}

64位浮点数 shell中的数字就是这一种类型 {"x":3.14,"y":3}

字符串 UTF-8字符串 {"foo":"bar"}

符号 shell不支持,shell会将数据库中的符号类型的数据自动转换成字符串

对象id 文档的12字节的唯一id {"id": ObjectId()}

日期 从标准纪元开始的毫秒数 {"date":new Date()}

正则表达式 文档中可以包含正则表达式,遵循JavaScript的语法 {"foo":/foobar/i}

代码 文档中可以包含JavaScript代码 {"x":function() {}}

未定义 undefined {"x":undefined}

数组 值的集合或者列表 {"arr": ["a","b"]}

内嵌文档 文档可以作为文档中某个key的value {"x":{"foo":"bar"}}

数据 数据库 文档 系统 支持 一致 一致性 类型 字符 分布式 功能 可用性 对象 就是 规则 存储 查询 强大 原则 名称 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 惠普服务器 独立显卡 db2 查看数据库信息 数据库中怎么发现联系 涉疫系统网络安全保护工作情况 毕节服务器显卡价格 国信互联网科技金融 数据库访问技术必读 青少年网络安全教育空中课堂 数据库实验教师考核 部队文职软件开发岗面试题 济南联通服务器托管 上海互联网金融软件开发 电脑访问局域网服务器卡顿 吉林加工软件开发公司 华三服务器 面板电源红灯 贝壳找房软件开发者 如何向数据库中添加文件格式 网管需要做数据库吗 阿里云服务器如何连接ip地址 上海汇合网络技术 为提高网络安全性有什么技术 数据库如何创建聚集 厦门学习网络安全人才缺口大 网络安全简单版手抄报 数据库基本操作视频 软件开发如何把控时间 北京互联网网络技术服务口碑推荐 贝壳找房软件开发者 山东大数据软件开发大概要多少钱 新华互联网科技学校南昌
0