关于MongoDB数据库核心概念

 更新时间:2023年04月12日 11:07:54   作者:Jiangxl~  
这篇文章主要介绍了关于MongoDB数据库核心概念,MongoDB由C++语言编写,是一个基于分布式文件存储的开源数据库系统,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

MongoDB数据库核心概念

1.NoSQL数据库介绍

NoSQL意思是不仅仅是sql。

NoSQL指的是菲关系型数据库,NoSQL有时称作Not Only SQL的缩写,是对不同于传统的关系型数据的统称。

NoSQL就是非关联形式的数据库,数据存储是key value形式。

NoSQL类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

2.MongoDB数据库介绍

MongoDB由C++语言编写,是一个基于分布式文件存储的开源数据库系统,是专为可扩展性、高性能和高可用性设计的数据库,是非关系型数据库中功能最丰富,最像关系型数据库,MongoDB的数据结构是json和bjson格式。

MongoDB是可以应用于各种规模的企业,各个行业以及各类应用程序的开源数据库,作为一个适用于敏捷开发的数据库,MongoDB的数据模式可以随着应用程序的发展灵活的更新。

随着应用程序的更新,数据库某张表可能需要增加一个或多个字段,而mysql这种关系型数据库需要修改表结构,并且在更新成千上万条数据,这个过程可能会导致数据库死锁,这种更新字段放到了非关系型数据库mongodb中,就会变得非常简单,只需要添加新字段后,新数据进来时应用即可,旧数据不会有变动,大大减少了数据库的压力。

MongoDB是一种叫做BSON(二进制JSON)的存储形式作为数据存储。

3.MongoDB支持的数据格式

3.1.JSON格式的数据类型

JSON是一种轻量级的数据交换格式,json采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯,这些特性使json成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成。

MongoDB使用json文档存储记录。

json格式:

{ 
    "id": "f274ef35-05a2-40c6-9b84-ff1e97702300", 
    "version": "7.6.2", 
    "hostname": "nginx-6b949875bc-hrzrp", 
    "ephemeral_id": "1025c85b-df07-4c4b-98d4-f5593293ef0e", 
    "type": "filebeat" 
    
}

json格式解析网站:https://www.bejson.com/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lMJ0cFeY-1638239458838)(.\mongodb-笔记图片存放\image-20210213095657806.png)]

3.2.BSON格式

BSON是一种类JSON的二进制形式的存储格式,简称Binary JSON,它和json一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,比如Date和BinData类型。

BSON的优点是灵活性高,但它的缺点就是空间利用率不是很理想。

BSON的特点:轻量性、可遍历性、高效性。

4.MongoDB数据库的特性

高性能

  • MongoDB提供高性能的数据持久化,尤其是支持嵌入式数据模型减少数据库系统上的I/O操作。
  • MySQL需要查询10张表,MongoDB一张表就可以搞定。
  • 丰富的语言查询,MongoDB支持丰富的查询语言来进行读写操作以及数据汇总。

高可用性

  • MongoDB的复制工具是副本集,提供自动故障转移和数据冗余。
  • MongoDB之前有主从复制,后来的主从复制集群称之为副本集。

水平可扩展性

  • MongoDB提供可扩展性,作为其核心功能的一部分,分片是将数据分散在一组机器上。
  • MongoDB副本集扩容也无需像redis需要迁移槽位,MongoDB可以直接扩容

支持多种存储引擎

  • WiredTiger存储引擎、MMAPv1存储引擎和InMemory引擎。

5.MongoDB程序

MOngoDB Derives:客户端程序

MongoDB Stitch:API服务

MongoDB Atlas:云上部署MongoDB

MongoDB Cloud Manager:管理MongoDB的软件包

MongoDB Charts:可视化图表

6.MongoDB应用场景

游戏场景

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

物流场景

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

社交场景

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

物联网场景

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

视频直播

  • 使用 MongoDB 存储用户信息、礼物信息等,用户评论。

电商场景

  • 商城上衣和裤子两种商品,除了有共同属性,如产地、价格、材质、颜色等外,还有各自有不同的属性集,如上衣的独有属性是肩宽、胸围、袖长等,裤子的独有属性是臀围、脚口和裤长等。

到此这篇关于关于MongoDB数据库核心概念的文章就介绍到这了,更多相关MongoDB数据库概念内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • 使用mongodb实现简单的读写操作

    使用mongodb实现简单的读写操作

    这篇文章主要给大家介绍了如何使用mongodb实现简单的读写操作,本文适合初学者,特别是刚刚安装了mongodb数据库的朋友,或在atlas刚拿到免费集群的朋友,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2023-12-12
  • Mongodb自增id实现方法

    Mongodb自增id实现方法

    这篇文章主要介绍了Mongodb自增id实现方法,分析了MongoDB数据库自增ID的原理与实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • MongoDB4.0在windows10下的安装与服务配置教程详解

    MongoDB4.0在windows10下的安装与服务配置教程详解

    本文通过图文并茂的形式给大家介绍了MongoDB4.0在windows10下的安装与服务配置教程,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • MongoDB中的参数限制与阀值详析

    MongoDB中的参数限制与阀值详析

    这篇文章主要给大家介绍了关于MongoDB中参数限制与阀值的相关资料,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • MongoDB?Server?用户名和密码登录的操作步骤

    MongoDB?Server?用户名和密码登录的操作步骤

    MongoDB Server默认不进行安全认证,即任何MongoDB Client都可以连接并拥有操作权限,这篇文章主要介绍了MongoDB?Server?用户名和密码登录的步骤,需要的朋友可以参考下
    2024-03-03
  • MongoDB学习笔记—Linux下搭建MongoDB环境

    MongoDB学习笔记—Linux下搭建MongoDB环境

    本篇文章主要介绍了Linux下搭建MongoDB环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • MongoDB超大块数据问题解决

    MongoDB超大块数据问题解决

    这篇文章主要为大家介绍了MongoDB超大块数据问题的技术瓶颈解决方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 详解MongoDB中用sharding将副本集分配至服务器集群的方法

    详解MongoDB中用sharding将副本集分配至服务器集群的方法

    副本集是MongoDB的主从复制中的重要功能,经常被用来作额外的备份,这里我们就来详解MongoDB中用sharding将副本集分配至服务器集群的方法,首先还是来回顾一下MongoDB中副本集的基本知识:
    2016-07-07
  • MongoDB日志文件过大的解决方法

    MongoDB日志文件过大的解决方法

    这篇文章主要介绍了MongoDB日志文件过大的解决方法,本文给出了一种不需要重启MongoDB服务的方法重新开启一个新日志文件,需要的朋友可以参考下
    2014-10-10
  • 记一次MongoDB性能问题(从MySQL迁移到MongoDB)

    记一次MongoDB性能问题(从MySQL迁移到MongoDB)

    最近忙着把一个项目从MySQL迁移到MongoDB,在导入旧数据的过程中,遇到了些许波折,犯了不少错误,但同时也学到了不少知识,遂记录下来,需要的朋友可以参考下
    2017-03-03

最新评论

?


http://www.vxiaotou.com