Code前端首页关于Code前端联系我们

MongoDB快速入门指南:业务场景、三高特点及相关概念

terry 2年前 (2023-09-26) 阅读数 47 #数据库

MongoDB快速上手指南:业务场景、三高特点及相关概念

1.1 业务场景

传统关系型数据库(如MySQL),针对数据运营2.0的“三高”要求及相应网站的要求,你会不会感到“不知所措”

所谓三高要求:

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

  • 高并发性能:和数据库写入需求
  • 高存储:需要高效存储和访问海量数据
  • 高扩展性&&高可用性:需要数据的高扩展性和高可用性

而MongoDB可以满足三个高要求

具体应用场景:

  • 社交场景,使用MongoDB存储用户信息,以及用户的朋友圈信息,通过地理位置索引实现附近的人和地点等功能。
  • 游戏场景,使用MongoDB保存游戏用户信息,用户的装备、积分等直接以嵌入文档的形式保存,方便查询、高效存储和访问。
  • 物流场景,使用MongoDB存储订单信息,订单状态在配送过程中会不断更新,嵌套与MongoDB以数组的形式存储,一次查询即可读出订单的所有变化。
  • 在物联网场景中,使用MongoDB存储所有连接的智能设备信息,以及设备上报的日志信息,并对该信息执行多种操作。多方面分析。
  • 视频直播,使用MongoDB存储交互信息等用户信息。

这些应用场景中数据操作的共同点是:

  1. 数据量大
  2. 频繁写入操作低价值数据集对事务性要求不高

这样的数据比较适合使用MongoDB进行数据存储

那么我们什么时候选择❀呢?什么?

除了架构的选择,除了上述三个特性外,还必须考虑以下问题:

  • 应用程序不需要事务和复杂的JOIN来支持
  • 新的应用程序,需求将改变,数据模型不行,我会快速迭代开发
  • 应用需要2000-3000读写QPS以上(更高也可以)
  • 应用需要TB甚至PB级数据存储
  • 应用发展迅速,必须能快速水平扩展
  • 应用要求存储的数据不丢失
  • 应用要求99.999% 高可用的应用需要大量 请求数对于地理位置,文字查询

如果以上符合1条,您可以考虑MongoDB。如果有2个或更多匹配,你将永远不会后悔选择MongoDB。

如果上述业务场景使用MySQL怎么办?

与 MySQL 相比,MongoDB 显然可以以更低的成本(包括学习、开发、运维成本等)解决问题

1.2 MongoDB 简介

MongoDB 是一个开源、高性能的 schemaless文档数据库,最初是为了简化开发、方便扩展的NoSQL数据库产品之一而设计的。它是一种与关系数据库(MySQL)最相似的非关系数据库。它支持的数据结构非常松散,是一种类似于JSON的格式,称为BSON,因此可以存储更复杂的数据类型,相当灵活。 MongoDB中的一条记录就是一个文档,它是由字段和值对(字段:值)组成的数据结构。一个 MongoDB 文档看起来就像一个 JSON 对象,也就是说,一个 文档被认为是一个对象。该字段的数据类型为字符类型。除了使用一些基本类型之外,它的值还可以包括其他文档、普通数组和文档数组。

“看起来最像关系数据库的 NoSQL 数据库”。 MongoDB 中的记录是一个文档,它是一个键值对。该字段的数据类型为字符类型。除了使用一些基本类型之外,值还包括其他文档、普通数组和文档数组

Mongo 相比 Mysql

MongoDB快速上手指南:业务场景、三高特点及相关概念

MongoDB快速上手指南:业务场景、三高特点及相关概念

MongoDB 的数据模型是面向文档的。所谓文档就是类似于JSON的结构。只要明白MongoDB数据库中存在不同的JSON(BSON)

  • Database(数据库)
    • 数据库就是存储集合
  • 集合
    • 对应数组集合。 文档
      • 文档数据库中的最小单位,通常情况下,我们存储和操作的内容都是文档

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

    1.2.1 数据库(数据库) 管理语法

    操作 语法
    查看所有数据库 显示数据库或;
    查看当前数据库 db;
    更改数据库(如果数据库不存在然后创建数据库)use ;
    删除当前数据库db.dropDatabase();

    1.2.2❙❙❙❙ 2.2.2 管理操作(采集) 语法查看所有集合显示集合;创建集合db.createCollection("");删除集合d.

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门