1. MongoDB快速实战与基本原理

news2024/12/23 5:12:56

分布式缓存技术Redis

  • 1. MongoDB介绍
    • 1.1 什么是MongoDB
    • 1.2 MongoDB vs 关系型数据库
    • 1.3 MongoDB的技术优势
    • 1.4 MongoDB的应用场景
  • 2. 2.MongoDB快速开始
    • 2.1 linux安装MorgoDB

本文是按照自己的理解进行笔记总结,如有不正确的地方,还望大佬多多指点纠正,勿喷。

课程内容:

1.MongoDB优势及其应用场景分析

2.MongoDB安装&文档操作

3.MongoDB数据模型详解

4.MongoDB固定集合实战

5.基于WiredTiger存储引擎读写模型详解

MongoDB4.0之后支持复制集的多文档事务,4.2以后支持分片的事务。

1. MongoDB介绍

1.1 什么是MongoDB

MongoDB是一个文档数据库(以JSON为数据模型),由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。

文档来自于“JSON Document”,并非我们一般理解的PDF,WORD文档。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,数据格式是BSON,一种类似JSON的二进制形式的存储格式,简称Binary JSON,和JSON一样支持内嵌的文档对象和数组对象,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,还支持对数据建立索引。原则上 Oracle和MySQL能做的事情,MongoDB 都能做(包括ACID事务)。

MongoDB是一个开源OLTP数据库,它灵活的文档模型(JSON)非常适合敏捷式开发、高可用和水平扩展的大数据应用。

  • OLTP: on-line Transaction Processing,联机(在线)事务处理
  • OLAP: on-line Analytical Processing,联机(在线)分析处理

MongoDB在数据库总排名第5,仅次于Oracle、MySQL等RDBMS,在NoSQL数据库排名首位。从诞生以来,其项目应用广度、社区活跃指数持续上升。

1.2 MongoDB vs 关系型数据库

1. 概念
MongoDB概念与关系型数据库(RDBMS)非常类似:

在这里插入图片描述

  • 数据库(database)︰最外层的概念,可以理解为逻辑上的名称空间,一个数据库包含多个不同名称的集合。

  • 集合(collection):相当于SQL中的表,一个集合可以存放多个不同的文档。

  • 文档(document) :一个文档相当于数据表中的一行,由多个不同的字段组成。

  • 字段(field) :文档中的一个属性,等同于列(cotumn)。

  • 索引(index) ︰独立的检索式数据结构,与SQL概念一致。

  • _id:每个文档中都拥有一个唯一的_id字段,相当于SQL中的主键(primary key)

  • 视图(view):可以看作一种虚拟的(非真实存在的)集合,与SQL中的视图类似
    从MongoDB3.4版本开始提供了视图功能,其通过聚合管道技术实现。

  • 聚合操作($lookup) : MongoDB用于实现"类似"表连接(tablejoin)的聚合操作符。

尽管这些概念大多与SQL标准定义类似,但MongoDB与传统RDBMS仍然存在不少差异
包括:

  • 半结构化,在一个集合中,文档所拥有的字段并不需要是相同的,而且也不需要对所用的字+段进行声明。因此,MongoDB具有很明显的半结构化特点。除了松散的表结构,文档还可以支持多级的嵌套、数组等灵活的数据类型,非常契合面向对象的编程模型。
  • 弱关系,MongoDB没有外键的约束,也没有非常强大的表连接能力。类似的功能需要使用聚合管道技术来弥补。

在这里插入图片描述

1.3 MongoDB的技术优势

MongoDB基于灵活的JSON文档模型,非常适合敏捷式的快速开发。与此同时,其与生俱来的高可用、高水平扩展能力使得它在处理海量、高并发的数据应用时颇具优势。

  • JSON结构和对象模型接近,开发代码量低
  • JSON的动态模型意味着更容易响应新的业务需求
  • 复制集提供99.999%高可用
  • 分片架构支持海量数据和无缝扩容

简单直观:从错综复杂的关系模型到一目了然的对象模型

在这里插入图片描述
快速:最简单快速的开发方式
在这里插入图片描述

灵活:快速响应业务变化

在这里插入图片描述

MongoDB优势:原生的高可用

在这里插入图片描述

MongoDB的优势:横向扩展能力

在这里插入图片描述

1.4 MongoDB的应用场景

从目前阿里云 MongoDB云数据库上的用户看,MongoDB的应用已经渗透到各个领域:

  • 游戏场景,使用MongoDB存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新;
  • 物流场景,使用MongoDB存储订单信息,订单状态在运送过程中会不断更新,以MongoDB内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来;
  • 社交场景,使用MongoDB存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能;
  • 物联网场景,使用MongoDB存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析;
  • 视频直播,使用MongoDB存储用户信息、礼物信息等;
  • 大数据应用,使用云数据库MongoDB作为大数据的云存储系统,随时进行数据提取分析,掌握行业动态。l

国内外知名互联网公司都在使用MongoDB:

在这里插入图片描述

如何考虑是否选择MongoDB?
没有某个业务场景必须要使用MongoDB才能解决,但使用MongoDB通常能让你以更低的成本解决问题。如果你不清楚当前业务是否适合使用MongoDB,可以通过做几道选择题来辅助决策。

在这里插入图片描述
只要有一项需求满足就可以考虑使用MongoDB,匹配越多,选择MongoDB越合适。

2. 2.MongoDB快速开始

2.1 linux安装MorgoDB

环境准备:

  • linux系统: centos7
  • 安装MongoDB社区版

下载MongoDB Community Server
下载地址: https://www.mongodb.com/try/download/community

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.9.tgz
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.9.tgz 
cd mongodb-linux-x86_64-rhel70-4.4.9/
bin/mongod --port=27017 --dbpath=/mongodb/data --logpath=/mongodb/log/mongodb.log --fork
--bind_ip=0.0.0.0 --fork

在这里插入图片描述

--dbpath :指定数据文件存放目录
--logpath :指定日志文件,注意是指定文件不是目录--logappend :使用追加的方式记录日志
--port:指定端口,默认为27017
--bind_ip:默认只监听localhost网卡--fork:后台启动
--auth:开启认证模式

添加环境变量

修改/etc/profile,添加环境变量,方便执行MongoDB命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/687118.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot+mybatis+layui就业管理系统设计和实现

基于SpringBootmybatislayui就业管理系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文…

【STL】容器适配器

放在专栏【C知识总结】,会持续更新,期待支持 1、什么是适配器? 我们生活中就存在大量的适配器,最常见的莫过于我们常见的电源适配器,它的作用就是将交流电源转化为直流电源进行输出,可以说电源适配器在电流…

618复盘:爆款存当下,蓝海寄未来

价格,贵必赔。优惠,直接减。 号称史上最内卷的一届618在一家又一家号称史上最大补贴的狂欢下,落幕得悄无声息,各大平台默契地都没有公布具体GMV。 这样的结局似乎已有预见。此前有媒体援引浙江大学经济学院教授叶建亮的说法&…

从小白到大神之路之学习运维第47天---第三阶段----Iptables、路由表的配置、Linux下创建虚拟IP

第三阶段基础 时 间:2023年6月26日 参加人:全班人员 内 容: Iptables、路由表的配置、Linux下创建虚拟IP 目录 Iptables 1. 查看 iptables 设置: 2. 开启全部流量: 3. 关闭全部流量: 4. 允许某…

【Jmeter教程】_事务控制器

目录 一、添加事务控制器 二、事务控制器参数说明 三、运用事务控制器 统计性能测试结果一定会关注TPS,TPS表示每秒处理事务数,JMeter默认每个事务对应一个请求。我们可以用逻辑控制器中的事务控制器将多个请求统计为一个事务。 一、添加事务控制器 …

分享 5 个你可能不知道的前端小技巧

大家都知道,如今前端开发是一个充满活力的领域,每天都会涌现出新的技术和最佳实践。 作为前端开发人员,如果你真的想创建引人入胜、直观且响应迅速的用户界面,就必须时刻跟进最新的趋势和技术。 作为前端开发人员,我们…

不止10倍提速!PCIe EtherCAT实时运动控制卡XPCIE1032H 等您评测!

在高速高精运动控制领域,数据交互的快慢对产线的生产效率起着重要作用。提升数据交互速度能够实时地接收和处理大量的传感器监控运行数据、运动指令和反馈信息,从而实现更精确的运动控制、速度调整和轨迹规划,进而提高系统的响应时间和稳定性…

LDR6023C 专门为USB-C接口无线领夹式麦克风方案打造

推出领夹式无线麦克风方案,专门为USB-C接口手机打造,兼容性非常的游戏,可让手机同时一边充电一边传输数据。 随着直播平台的兴起,网络直播越来越火, 领夹式直播麦克风得到广泛应用, 现在手机,电…

海睿思分享 | 浅谈企业数据质量问题

一、数据质量问题场景 在日常工作中,业务领导经常通过BI系统来了解各项业务的业绩情况。倘若某天,他打开某张核心报表,发现当日某个区域的数据一直是空白的。BI开发人员经过几个小时的排查分析,发现是当日该区域的销售数据存在产…

VsCode 安装Copilot

1,插件安装 (1)首先我们在 VSCode 里面搜索并安装 Copilot 插件: (2)安装后编辑器右下角会出现一个小机器人图标,并且提示我们需要登录 GitHub 账号: 此时需要科学 目前要收费劝退…

增值税高如何解决?有哪些注意事项?

增值税高如何解决?有哪些注意事项? 《税筹顾问》专注于园区招商、企业税务筹划,合理合规助力企业节税! 咦,增值税高了怎么办?这可是个大问题啊!特别是对于那些经济效益还不错的企业来说&#x…

【Leetcode60天带刷】day37——968. 监控二叉树

​ 题目: 968. 监控二叉树 给定一个二叉树,我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所有节点所需的最小摄像头数量。 示例 1: 输入:[0,0,null,0,0] 输出&#…

校园外卖行业内卷之下,高校外卖创业者如何成为卷王?

伴随着外卖行业的不断发展,校园市场前景广阔。校园外卖市场因各大平台的竞争而变得越来越复杂。各种技术支持和经验参考让大学生创业校园外卖越来越困难,市场竞争也越来越激烈。 校园外卖市场究竟有多内卷? 外卖龙头企业。 校园市场广阔的发…

抖音seo矩阵系统:源码编写及优化策略

开发概述 抖音作为一款流行的短视频分享平台,其搜索引擎优化(SEO)的重要性日益凸显。为了提升抖音账号的曝光率和用户粘性,开发一套抖音SEO矩阵系统源码成为了必不可少的一步。 在编写抖音SEO矩阵系统源码时,需要首先…

企业缺成本票怎么办?

企业缺成本票怎么办? 《税筹顾问》专注于园区招商、企业税务筹划,合理合规助力企业节税! 企业缺成本发票的原因基本都是一样的,不外乎以下这几种: 1.企业类型自身缺陷:成本费用以人员工资、提…

父元素设置max-height,子元素高度设置百分比,子元素继承父元素高度失败

需求描述: 小程序里碰到的,最外层page高度 100%,里边第一层盒子高度为 max-height: 60%; 第一层盒子里有 title,content,这个 content 高度要随着第一层盒子高度走,最高为第一层盒子的高度减去 title 的高…

金属元素螯合剂:1023889-20-4,(S)-DOTAGA-(COOt-Bu)4,水溶性好、稳定性好

●中文名:(S)-DOTAGA-四叔丁酯 ●英文名:(S)-DOTAGA-(COOt-Bu)4 ●外观以及性质: (S)-DOTAGA-(COOt-Bu)4中DOTA是一种十二元四氮杂大环配体的金属元素螯合剂,该化合物还可作为一种水溶性好、稳定性好的离子液体的配体。此外&…

it个人工作总结范文10篇

it个人工作总结1 20-年这一年中,在公司领导的正确领导及对公司信息化建设高度重视下,经过IT部门全员长期努力,公司信息化工作取得了明显的成效。现将20-年IT部工作总结如下: 第一部分:取得的成绩 (一)建立华凯尔协同工…

光伏行业快速发展与分布式光伏云平台的设计

安科瑞虞佳豪 ​近年来,我国光伏产业实现快速发展,成为我国取得全球竞争优势、实现端到端安全可控、有望率先成为高质量发展典范的新兴产业之一。阳光电源股份有限公司董事长曹仁贤表示,目前我国光伏产业已形成全球最完整的产业链&#xff0c…

民用飞机飞控系统传感器故障诊断研究综述

导语 飞控系统中的各类传感器对飞机稳定与操纵起着至关重要的影响,是飞机的重要安全机载设备之一。传统冗余方法具有“安全性高,经济性低”的特点,通过多余度设计来提升系统的安全性给飞机的重量与结构设计、系统综合集成、维修与检测成本都…