美文网首页
了解非关系型数据库 NoSQL - MongoDB

了解非关系型数据库 NoSQL - MongoDB

作者: 让你变好的过程从来都不会很舒服 | 来源:发表于2022-06-16 12:47 被阅读0次

快速上手 (入门篇): https://zhenye-na.github.io/blog/2020/01/27/intro-to-mongodb.html
集群分片 (高级篇) : https://zhenye-na.github.io/blog/2020/02/07/advanced-mongodb.html

1. MongoDB 相关概念

1.1 业务场景

传统的关系型数据库 (比如 MySQL), 在数据操作的”三高”需求以及对应的 Web 2.0 网站需求面前, 会有”力不从心”的感觉

所谓的三高需求:

高并发, 高性能, 高可用, 简称三高

  • High Performance: 对数据库的高并发读写的要求
  • High Storage: 对海量数据的高效率存储和访问的需求
  • High Scalability && High Available: 对数据的高扩展性和高可用性的需求
    而 MongoDB 可以应对三高需求

具体的应用场景

社交场景, 使用 MongoDB 存储存储用户信息, 以及用户发表的朋友圈信息, 通过地理位置索引实现附近的人, 地点等功能.
游戏场景, 使用 MongoDB 存储游戏用户信息, 用户的装备, 积分等直接以内嵌文档的形式存储, 方便查询, 高效率存储和访问.
物流场景, 使用 MongoDB 存储订单信息, 订单状态在运送过程中会不断更新, 以 MongoDB 内嵌数组的形式来存储, 一次查询就能将订单所有的变更读取出来.
物联网场景, 使用 MongoDB 存储所有接入的智能设备信息, 以及设备汇报的日志信息, 并对这些信息进行多维度的分析.
视频直播, 使用 MongoDB 存储用户信息, 点赞互动信息等.
这些应用场景中, 数据操作方面的共同点有:

数据量大
1、写入操作频繁
2、价值较低的数据, 对事务性要求不高
3、对于这样的数据, 更适合用 MongoDB 来实现数据存储
那么我们什么时候选择 MongoDB 呢?

除了架构选型上, 除了上述三个特点之外, 还要考虑下面这些问题:

应用不需要事务及复杂 JOIN 支持
新应用, 需求会变, 数据模型无法确定, 想快速迭代开发
应用需要 2000 - 3000 以上的读写QPS(更高也可以)
应用需要 TB 甚至 PB 级别数据存储
应用发展迅速, 需要能快速水平扩展
应用要求存储的数据不丢失
应用需要 99.999% 高可用
应用需要大量的地理位置查询, 文本查询
如果上述有1个符合, 可以考虑 MongoDB, 2个及以上的符合, 选择 MongoDB 绝不会后悔.

1.2 MongoDB 简介

MongoDB是一个开源, 高性能, 无模式的文档型数据库, 当初的设计就是用于简化开发和方便扩展, 是NoSQL数据库产品中的一种.是最 像关系型数据库(MySQL)的非关系型数据库. 它支持的数据结构非常松散, 是一种类似于 JSON 的 格式叫BSON, 所以它既可以存储比较复杂的数据类型, 又相当的灵活. MongoDB中的记录是一个文档, 它是一个由字段和值对(field:value)组成的数据结构.MongoDB文档类似于JSON对象, 即一个文档认 为就是一个对象.字段的数据类型是字符型, 它的值除了使用基本的一些类型外, 还可以包括其他文档, 普通数组和文档数组.

“最像关系型数据库的 NoSQL 数据库”. MongoDB 中的记录是一个文档, 是一个 key-value pair. 字段的数据类型是字符型, 值除了使用基本的一些类型以外, 还包括其它文档, 普通数组以及文档数组

MongoDB 数据模型是面向文档的, 所谓文档就是一种类似于 JSON 的结构, 简单理解 MongoDB 这个数据库中存在的是各种各样的 JSON(BSON)

数据库 (database)
数据库是一个仓库, 存储集合 (collection)
集合 (collection)
类似于数组, 在集合中存放文档
文档 (document)
文档型数据库的最小单位, 通常情况, 我们存储和操作的内容都是文档

在 MongoDB 中, 数据库和集合都不需要手动创建, 当我们创建文档时, 如果文档所在的集合或者数据库不存在, 则会自动创建数据库或者集合

数据库 (databases) 管理语法

集合 (collection) 管理语法

相关文章

  • Mongodb and pymongo

    mongodb:非关系型数据库 一: 非关系型数据库NoSQL全称--Not Only Sql 非关系型数据库主要...

  • MongoDB小总结

    关系型数据库:mysql非关系型数据库:mongodb、redismongodb:(nosql:not only ...

  • 116.mongodb

    mongodb:非关系型数据库##一:非关系型数据库NoSQL全称-不仅SQL非关系型数据库的主要特点:非关系型的...

  • MongoDB

    一、MongoDB安装 NoSQL,全称是”Not Only Sql”,指的是⾮非关系型的数据库。 非关系型数据库...

  • NoSQL数据库——MongoDB

    MongoDB简介和启动 NoSQL数据库 NoSQL数据库:Not only sql,指代非关系型数据库 优点:...

  • MongoDB介绍

    MongoDB是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。作为主流的非关系型数据库(NoSQL)...

  • 十八. 数据库存储(MongoDB,MySQL)

    1.MongoDB数据库:属于非关系型数据库(NoSQL) MongoDB官网:https://www.mongo...

  • express mongoDB 安装与连接

    mongoDB 非关系型数据库 - NoSQL 下载 搜索 mongoDB 选择 server 安装 使用 1.安...

  • mysql --关系型数据库系统

    数据库:非关系型:mongodb--json,noSql;有关系型oracle ,mysql关系---类似一张表,...

  • MongoDB数据库的安装和使用

    MongoDB概述 1,MongoDB数据库是一种非关系型数据库(NoSQL),什么是非关系型数据库可以使用度娘查...

网友评论

      本文标题:了解非关系型数据库 NoSQL - MongoDB

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