初始MongoDB

最近在做新闻的推荐系统,用户画像这块需要用MongoDB来存储,所以就抽时间系统学一下MongoDB吧!
好好学习,天天向上!哈哈哈!— Rocket,Qian

1. NoSQL数据库

NoSQL(Not Only SQL)数据库是“非关系型数据库”的统称。

1.1 何为NoMQL数据库

NoSQL数据库与传统的关系型数据库不同,NoSQL数据库中数据之间的关联较少,因此更容易分散储存。

通常适用于存储大规模数据。在储存这些大量数据时,通常没有绝对固定的模式,数据是独立存在的,无需多余操作就能以横向扩展的方式进行分布式存储。

MongoDB是一种采用文档形式进行存储的数据库,具有很强的灵活性和可扩展性。

  • MongoDB具有直观且完善的数据处理指令;
  • 提供驱动(driver)和丰富的API;
  • 提供完善的管理模式和配置方式。

1.2 NoSQL数据库有哪些特征

  • 可弹性扩展:去掉关系型数据库的关联特性,数据之间没有关联,更容易扩展;
  • BASE特征:Basically Available、Scalable、Eventual Consistency;
  • 大容量、高性能;
  • 灵活的数据模型;
  • 高可用性:NoSQL数据库可通过副本集实现故障转移,保证高可用。

1.3 NoSQL数据库有哪些种类

  • 1.文档型数据库
    就是MongoDB,采用文档的方式来存储数据,即将单个实体的所有数据都存在一个文档中,而文档存在于集合中。
  • 2.“键值对”(key-value)数据库
    Redis属于此类。
    键值对数据库使用数据结构中的key来查找特定的Value。
    键值对数据库适用大量数据的高访问负载场景,例如日志系统。
  • 3.列存储数据库
  • 4.图存储数据库

1.4 NoSQL与RDB使用场景

  1. 数据模型的关联要求

    需要多表关联,更适合用RDB;对象实体关联少,则更适合用NoSQL数据库。

  2. 数据库的性能要求

    数据量多且访问速度至关重要,那么使用NoSQL数据库更合适。NoSQL数据库能通过数据的分布式存储大幅提高存取性能。

  3. 数据的一致性要求

    NoSQL数据库在事务处理与一致性方面无法与RDB相提并论。

  4. 数据的可用性要求

    NoSQL数据库提供了强大的数据可用性。

2. MongoDB

2.1 概念

一个半结构化的非关系型数据库,有着分布式的存储架构,能有效解决海量数据的存储与高并发访问效率的问题。可以提供性能佳且扩展性高的解决方案。

对于数据的结构没有硬性要求,以BSON格式来保存数据,便于存储复杂多样、类型特殊的数据文件。

支持丰富多元的查询,不仅支持大部分关系型数据库的单表查询,还支持范围查询、排序、MapReduce等。

2.2 MongoDB特性

2.2.1 存储结构

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

2.2.2 数据查询

  • 不仅支持单表查询,还支持强大的聚合计算(如:sum、avg、count、group等),以及大数据引擎常见的映射和归纳(MapReduce)
  • 可以在特定的集合字段上添加索引,提高查询性能
  • 多种语言操作,Java,python等。

2.2.3 数据库架构

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

2.3 适用场景

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

2.4 MongoDB中的对象

  • Database
  • Collection:集合对应MySQL的表(Table),差别在于集合不需要事先定义模式(schema)。
  • Document:文档是MongoDB存储数据的基本单元,相当于MySQL的行(row)。
  • View
  • Index
  • User
  • Stored Procedure
  • Field:字段(field)是文档中的元素,相当于MySQL的表(Column)。
MongoDB 数据库关系型数据库
DatabaseDatabase
CollectionTable
DocumentRow
ViewView
IndexIndex
UserUser
Sorted ProcedureSorted Procedure
FieldColumn

2.5 MongoDB中的文档

2.6 MongoDB中的数据类型

  • 基本数据类型
    MongoDB使用的是BSON文档格式,储存数据时会分类型,每个类型都有其对应的数字。在MongoDB中,如需要修改字段类型,则须依照对应的名称或数字来修改。如下表:
类型对应数字名称
Double1
String2
Object3
Array4
Binary data5
undefined6
ObjectID7
Boolean8
Date9
Null10
  • ObjectID
    MOngoDB文档中有一个自动生成的字段——_id,此字段会被自动指定为一个不重复的值。若不指定,MongoDB驱动程序会在写入数据时自动生成一个类型为ObjectID的唯一值。
  • 子文档
  • 数组
  • 日期和时间

附:MongoDB大学在这个里面注册账号,可以免费使用一个3个node的集群,同时配有讲解课程,是入门MongoDB比较好的途径,仅供参考。
当然也可以在本机安装Mongodb单机版,Robo 3T(一个第三方客户端)来使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值