和我一起学MongoDB(一)MongoDB简介

NoSQL数据库有哪些种类

  • 文档型数据库
    文档型数据库采用文档的方式来存储数据,即将单个实体的所有数据都存在一个文档中,而文档存在于集合中。
    MongoDB
  • “键值对”(Key-Value)数据库
    “键值对”数据库主要是使用数据结构中的键来查找特定的值
    优点:这类数据库在存储时不采用任何模式,因此极易添加数据
    缺点:通过“键”和“值”一对一查找时性能较高,但只针对“值”来查找时性能会比较差
    Redis、Voldemort、Scalaris、Oracle Berkeley DB
  • 列存储数据库
    列存储数据库是以“列”为单位来存储数据的。相对与行存储的数据库,它更适合用于批量数据处理与实时数据查询
    优点:同一列数据的格式相同,所以适合数据压缩,也更善于处理大量数据的查询与计算,切有利于分布式扩展
    缺点:不适合做实时的删除或更新操作
    Sybase IQ、Vertica
  • 图存储数据库
    图存储数据库,采用图形理论来存储尸体之间的关系信息,如社交关系网络、族谱
    Neo4j、FlockDB、GraphDB

MongoDB简介

MongoDB有哪些特性

存储结构

  • MongoDB采用“集合”来存储文档数据
  • 文档的存储架构是基于JSON改良的BSON
  • MongoDB可以存储无模式的文档,不需要事先定义数据结构和数据类型。
  • MongoDB能让使用者根据应用程序的存取需求来设置反正规化的数据结构,以加快查询速度

数据查询

  • 除了单表查询功能,还支持强大的聚合计算(sum/avg/count/group等),以及大数据引擎中常见的映射和归纳(MapReduce)
  • MongoDB可以在特定的集合字段上添加索引,以提升查询的性能
  • 支持多种程序语言操作

数据库架构

  • MongoDB集群具有副本集的架构,可以实现数据实时备援、故障转移等,能确保服务不会长时间中断或发生数据丢失的情况
  • MongoDB支持数据块自动切分,可以实现横向扩容、能保证数据存储于王文的负载均衡。虽然数据是分布式存储的,但对应用程序来说,仍可以通过统一的路由来访问数据

MongoDB的使用场景

  • 需要处理大量的低价值数据,且对数据处理性能有较高要求
  • 需要借助缓存层来处理数据
  • 需要高度的伸缩性

MongoDB中的对象

数据库 Database

默认数据库test,在使用use 时,会切换到某个数据库,如果数据库不存在,会自动创建

集合 Collenction

MongoDB是面向集合的存储。在储存数据时,MongoDB会使用集合在做分类,在集合中可以储存许多文档
集合对应表(Table),不过集合不需要事先定义模式(Schema)

文档 Document

文档是MongoDB存储数据的最基本单元,相当于行(Row)。文档内包括一至多个“键值对”。每个“键”为一个字段(Field)。字段的值可以是数值,字符串,数组或者子文档等

视图 (View)

视图与查询集合的结果相同,但视图并非实际存在的集合,而是通过指令来构建数据查询得出的结果。

索引(Index)

MongoDB索引的使用方法和原理都于传统关系型数据库的索引相同。MongoDB还支持地理空间索引,以提升查询平面或球面坐标的速度。

用户(User)

如果MongoDB开启了安全认证,在会在数据库中产生用户表。在MongoDB中,每个数据库都有独立的用户表

存储过程(Stored Procedure)

MongoDB的存储过程是用JavaScript撰写的,存储在system.js集合中,具有输入/输出参数、嵌套调用等特性,可提供应用程序调用

字段(Field)

字段是MongoDB文档中的元素,相当于关系型数据库中的“列”(Column)。在MongoDB中,字段可以添加的增加或减少,不需要事先定义

MongoDB与关系型数据库的术语对应关系

MongoDB 关系型数据库
database(数据库) database(数据库)
collection(集合) table(表)
document(文档) row(行)
field(字段) column(列)
View(视图) View(视图)
User(用户) User(用户)
Stored Procedure(预存程序) Stored Procedure(预存程序)

你可能感兴趣的:(和我一起学MongoDB(一)MongoDB简介)