首页 > 数据库 >MongoDB介绍

MongoDB介绍

时间:2023-06-25 22:01:20浏览次数:94  
标签:存储 Mongo MongoDB 信息 文档 介绍 应用

MongoDB介绍

MongoDB简介

MongoDB 是免费开源的跨平台 NoSQL 数据库,命名源于英文单词 humongous,意思是「巨大无比」,可见开发组对 MongoDB 的定位。

与关系型数据库不同,MongoDB 的数据以类似于 JSON 格式的二进制文档存储:

{
  name: "itBaiZhan",
  age: 18,
  hobbies: ["python", "mongo"]
}

文档型的数据存储方式有几个重要好处:

  • 文档的数据类型可以对应到语言的数据类型,如数组类型(Array)和对象类型(Object)
  • 文档可以嵌套,有时关系型数据库涉及几个表的操作,在 MongoDB 中一次就能完成,可以减少昂贵的连接花销;
  • 文档不对数据结构加以限制,不同的数据结构可以存储在同一张表

MongoDB的适用场景

  • 网站数据

    Mongo 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性

  • 缓存

    由于性能很高,Mongo 也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo搭建的持久化缓存层可以避免下层的数据源过载

  • 大尺寸、低价值的数据

    使用传统的关系型数据库存储一些大尺寸低价值数据时会比较浪费,在此之前,很多时候程序员往往会选择传统的文件进行存储

  • 高伸缩性的场景

    Mongo 非常适合由数十或数百台服务器组成的数据库,Mongo 的路线图中已经包含对MapReduce 引擎的内置支持以及集群高可用的解决方案

  • 用于对象及JSON 数据的存储

    Mongo 的BSON 数据格式非常适合文档化格式的存储及查询

MongoDB的行业具体应用

  • 游戏场景

    使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新

  • 物流场景

    使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。

  • 社交场景

    使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能

  • 物联网场景

    使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析

  • 直播

    使用 MongoDB 存储用户信息、礼物信息等

如何抉择是否使用MongoDB

应用特征 Yes/No
应用不需要复杂事务及复杂join支持 yes
新应用,需求会变,数据模型无法确定,想快速迭代开发
应用需要2000-3000以上的读写QPS(更高也可以)
应用需要TB甚至 PB 级别数据存储
应用发展迅速,需要能快速水平扩展
应用需要大量的地理位置查询、文本查询
应用需要99.999%高可用

有一个yes就可以选择MongoDB,两个以上yes,选MongoDB绝对不后悔

标签:存储,Mongo,MongoDB,信息,文档,介绍,应用
From: https://www.cnblogs.com/jiangjiayun/p/17504060.html

相关文章

  • 学习Java前的一些介绍
    1.java开发环境搭建卸载:删除Java的安装目录删除JAVA_HOME删除path下关于java的目录java-version验证安装:创建jdk和jre两个目录(还可以创建一个code目录存放代码)百度搜索jdk(建议安装jdk8)同意协议,找到对应版本并且下载双击安装jdk配置环境变量我......
  • F5APM第一期产品功能介绍​
    F5APM第一期产品功能介绍APM的模式一:NetworkTunnelAccess:类似SSLVPNAPM的模式二:PortalAccess:全代理模式,后端的应用代理到APM上......
  • node框架介绍sails
     Sails: 官方网站:http://sailsjs.org/#/ MVCfornode auto-generateRESTAPIs EasyWebSocketSupport         ......
  • MongoDB 概念解析
    1.MongoDB概念解析不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档、集合、数据库,下面我们依次介绍。下表将帮助您更容易理解Mongo中的一些概念:通过下图实例,我们也可以更直观的的了解Mongo中的一些概念:2.数据库一个mongodb中可以建立多个数据库。Mong......
  • RedisInsight:Redis可视化工具介绍与使用
    RedisInsight简介RedisInsight是一个直观高效的RedisGUI管理工具,它可以对Redis的内存、连接数、命中率以及正常运行时间进行监控,并且可以在界面上使用CLI和连接的Redis进行交互(RedisInsight内置对Redis模块支持):RedisInsight提供的功能:唯一支持RedisCluster......
  • 原型工具使用介绍
    墨刀是一款在线原型设计与协同工具,借助墨刀,产品经理、设计师、开发、销售、运营及创业者等用户群体,能够搭建为产品原型,演示项目效果。在软件开发阶段能有个实用方便的原型设计工具将会大大提升软件开发的效率,增加软件的丰富性,方便我们的生活。截下来我将简单介绍墨刀这款原型开发......
  • Tesla EDI 项目数据库方案开源介绍
    近期为了帮助广大用户更好地使用EDI系统,我们根据以往的项目实施经验,将成熟的EDI项目进行开源。用户安装好知行之桥EDI系统之后,只需要下载我们整理好的示例代码,并放置在知行之桥指定的工作区中,即可开始使用。今天的文章主要为大家介绍TeslaEDI项目,了解如何获取开源的项目代......
  • ZigBee SOC芯片CC2530F256RHAR 芯片介绍以及原理图
    ZigBee新一代SOC芯片CC2530F256RHAR是真正的片上系统解决方案,支持IEEE802.15.4标准/ZigBee/ZigBeeRF4CE和能源的应用。拥有庞大的快闪记忆体多达256个字节,CC2530是理想ZigBee专业应用。支持新RemoTI的ZigBeeRF4CE,这是业界首款符合ZigBeeRF4CE兼容的协议栈,和更大内存大小将允许芯片......
  • spring的Environment类使用介绍
    org.springframework.core.env.Environment接口是Spring框架的一部分,而不是SpringBoot的特定功能。它提供了一种统一的方式来访问应用程序的配置属性,无论这些属性是通过配置文件、命令行参数、环境变量还是其他来源设置的。通过Environment接口,可以获取应用程序的各种属性值,包括......
  • mongodb第八篇:数组操作
    db.students.insertOne({"_id":1,"grades":[80,85,90]})db.students.insertOne({"_id":2,"grades":[88,90,92]})db.students.insertOne({"_id":3,"grades":[85,100,90]})需求1、把_id为1的文档的grades数组中的85改成8......