美文网首页mongodb
和我一起学MongoDB(一)MongoDB简介

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

作者: 月饮沙 | 来源:发表于2022-01-10 15:24 被阅读0次

    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 <databasename>时,会切换到某个数据库,如果数据库不存在,会自动创建

    集合 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简介

        本文链接:https://www.haomeiwen.com/subject/isimcrtx.html