1、MongoDb综述

1. MongoDb综述

1.1. 什么是Nosql

NoSQL:Not Only SQL ,本质也是一种数据库的技术,相对于传统数据库技术,它不会遵循一些约束,比如:sql标准、ACID属性,表结构等。

Nosql优点

l 满足对数据库的高并发读写

l 对海量数据的高效存储和访问

l 对数据库高扩展性和高可用性

l 灵活的数据结构,满足数据结构不固定的场景

Nosql缺点

l 一般不支持事务

l 实现复杂SQL查询比较复杂

l 运维人员数据维护门槛较高

l 目前不是主流的数据库技术

1.1.1. NoSql分类

image.png

1.1.2. 数据库流行程度排行

https://db-engines.com/en/ranking

image.png

1.2. MongoDb概念入门

1.2.1. 什么是MongoDB

MongoDB:是一个数据库 ,高性能、无模式、文档性,目前nosql中最热门的数据库,开源产品,基于c++开发。是nosql数据库中功能最丰富,最像关系数据库的。

特性

l 面向集合文档的存储:适合存储Bson(json的扩展)形式的数据;

l 格式自由,数据格式不固定,生产环境下修改结构都可以不影响程序运行;

l 强大的查询语句,面向对象的查询语言,基本覆盖sql语言所有能力;

l 完整的索引支持,支持查询计划;

l 支持复制和自动故障转移;

l 支持二进制数据及大型对象(文件)的高效存储;

l 使用分片集群提升系统扩展性;

l 使用内存映射存储引擎,把磁盘的IO操作转换成为内存的操作;

1.2.2. MongoDB核心概念

image.png

1.2.3. 应不应该用MongoDB?

并没有某个业务场景必须要使用 MongoDB才能解决,但使用 MongoDB 通常能让你以更低的成本解决问题(包括学习、开发、运维等成本)

image.png

如果上述有1个 Yes,可以考虑 MongoDB,2个及以上的 Yes,选择MongoDB绝不会后悔!

1.2.4. MongoDB使用场景

MongoDB 的应用已经渗透到各个领域,比如游戏、物流、电商、内容管理、社交、物联网、视频直播等,以下是几个实际的应用案例:

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

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

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

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

l 视频直播,使用 MongoDB 存储用户信息、礼物信息等

1.2.4.1. 不使用MongoDB的场景

l 高度事务性系统:例如银行、财务等系统。MongoDB对事物的支持较弱;

l 传统的商业智能应用:特定问题的数据分析,多数据实体关联,涉及到复杂的、高度优化的查询方式;

l 使用sql方便的时候;数据结构相对固定,使用sql进行查询统计更加便利的时候;

1.2.4.2. 谁在使用MongoDB

image.png

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

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

相关文章

创建查询系统,提升工作效率

今天我要和大家分享一个非常实用的小技巧,能够让老师们在短短三分钟内创建一个非常方便的查询系统!是的,通过使用易查分这个神奇的工具,你可以轻松满足各种查询需求! 首先,老师们只需要注册一个易查分账号。…

使用两个队列模拟栈

整体思路如下图: 代码实现 import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;/*** author: Arbicoral* Description: 使用2个队列模拟栈的 push() pop() top(), 自己实现打印 print()*/ public class QueueMoniStack2 {public stati…

uniapp 模糊搜索(小白必看)

实现模糊搜索很简单,按照下面的步骤: 1. 搜索栏 <view class"search-box"><uni-search-bar class"uni-mt-10" radius"100" placeholder"请输入移交信息" clearButton"auto" bgColor"#F8F8F8"cancelBut…

SpringMvc决战-【SpringMVC之自定义注解】

目录 一、前言 1.1.什么是注解 1.2.注解的用处 1.3.注解的原理 二.注解父类 1.注解包括那些 2.JDK基本注解 3. JDK元注解 4.自定义注解 5.如何使用自定义注解&#xff08;包括&#xff1a;注解标记【没有任何东西】&#xff0c;元数据注解&#xff09;&#xff1f; 三…

Linux下使用lookbusy加载cpu负载

Lookbusy 是一个用于在 Linux 系统上生成合成负载的简单应用程序。它可以在 CPU 上生成固定的、可预测的负载&#xff0c;保持选定数量的内存处于活动状态&#xff0c;并生成您需要的任意数量的磁盘流量。 官方地址&#xff1a;lookbusy -- a synthetic load generator 编译 …

Article Forge:AI写作文章内容生成器

【产品介绍】 名称 Article Forge 成立/上线时间 2022年 具体描述 Article Forge是一款基于人工智能和深度学习的AI写作文章内容生成器&#xff0c;可以自动写出1500字的文章无论是产品描述&#xff0c;还是整篇博客文章&#xff0c;Article Forge都能在一…

堆与栈的区别

OVERVIEW 栈与堆的区别一、程序内存分区中的堆与栈1.栈2.堆3.堆&栈 二、数据结构中的堆与栈1.栈2.堆 三、堆的深入1.堆插入2.堆删除&#xff1a;3.堆建立&#xff1a;4.堆排序&#xff1a;5.堆实现优先队列&#xff1a;6.堆与栈的相关练习 栈与堆的区别 自整理&#xff0c;…

竞赛 基于机器视觉的车道线检测

文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分…

video 视频编解码一些debug方法

文章目录 一、通过命令去获取一些数据1.2 确定我们xml配置文件: 二、查看我们芯片支持的编码能力三、通过log去获取信息 这个文章的主要内容是为了后期性能方面的debug, 设计到前期的bringup则没有 一、通过命令去获取一些数据 获取媒体相关的参数&#xff1a; # getprop |…

Thinkphp6 配置并使用redis图文详解 小皮面板

这篇文章主要介绍了Thinkphp6 配置并使用redis的方法,结合实例形式详细分析了Redis的安装、配置以及thinkphp6操作Redis的基本技巧,需要的朋友可以参考下 一、安装redis ThinkPHP内置支持的缓存类型包括file、memcache、wincache、sqlite。ThinkPHP默认使用自带的采用think\Ca…

SpringMVC之自定义注解

目录 一.什么是Java注解 1.简介 2.注解的分类 3.JDK元注解 二.自定义注解 1.自定义注解的分类 1.1.标记Annotation: 1.2.元数据Annotation: 2.如何使用自定义注解 3.案例演示 3.1 获取类、方法及属性上的注解值 3.2Inherited 的使用 3.3获取类属性上的注解属性值 3.…

springboot整合mybatis

一、项目结构展示 二、开始整合 1、引入pom依赖 进入Maven中央仓库选择自己所需要的依赖&#xff0c;maven仓库地址&#xff1a;Maven Central 完整Maven依赖如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"h…

markdown工具Atom预览与插件安装

​atom是以命令行作为插件选项的入口 打开命令输入框 Windows: ctrl shift p Mac: command shift p 输入命令安装 输入 markdown preview toggle &#xff0c;可以偷懒只输入mdpt(模糊匹配) 按enter键即可看到预览&#xff0c;如图&#xff0c;左边编辑&#xff0c;右…

Vue中的过滤器 Filters

过滤器 Filters 过滤器一般用于格式化文本内容&#xff0c;通常可以在两个地方使用&#xff0c;主要是模板语法、以及 v-bind 表达式中。例如我想对展示的文本进行一些特殊处理&#xff0c;将金额进行四舍五入后再展示。选项 filters 内可以编写多个自定义过滤器。 用法&…

LightDB 23.3 通过GUC参数控制commit fetch

背景 commit游标提交之后&#xff0c;可以继续使用fetch进行结果集的操作。commit和fetch结合使用功能开发时不考虑分布式。后续&#xff0c;又对分布式进行了测试&#xff0c;发现持有portal后&#xff0c;代码中会对querydesc进行非空判断。当querydesc为空时&#xff0c;Li…

工业交换机常见的硬件故障有哪些?

工业交换机常见的硬件故障主要是由于受到供电电源、室内温度、室内湿度、电磁干扰、静电等机房环境的影响&#xff0c;造成工业交换机电源、背板、模块、端口等部件出现故障。具体可以分为以下几类。 1.电力供应故障&#xff1a; 由于外部供电不稳定、电源线路老化或雷击等原因…

LiveNVR监控流媒体Onvif/RTSP功能-支持海康摄像头海康NVR通过EHOME协议ISUP协议接入分发视频流或是转GB28181

LiveNVR支持海康NVR摄像头通EHOME接入ISUP接入LiveNVR分发视频流或是转GB28181 1、海康 ISUP 接入配置2、海康设备接入2.1、海康EHOME接入配置示例2.2、海康ISUP接入配置示例 3、通道配置3.1、直播流接入类型 海康ISUP3.2、海康 ISUP 设备ID3.3、启用保存3.4、接入成功 4、相关…

亚马逊封买家账号的原因有哪些

亚马逊可能封锁买家账号的原因有多种&#xff0c;主要是出于保护市场和维护平台秩序的考虑。以下是一些可能导致亚马逊封锁买家账号的常见原因&#xff1a; 1、涉及违规行为&#xff1a;如果买家违反了亚马逊的使用政策&#xff0c;如发表虚假评价、滥用退货政策、欺诈或盗窃等…

【视觉SLAM入门】7.3.后端优化 基于KF/EKF和基于BA图优化的后端,推导及举例分析

"时间倾诉我的故事" 1. 理论推导2. 主流解法3. 用EKF估计状态3.1. 基于EKF代表解法的感悟 4. 用BA法估计状态4.1 构建最小二乘问题4.2 求解BA推导4.3 H的稀疏结构4.4 根据H稀疏性求解4.5 鲁棒核函数4.6 编程注意 5.总结 引入&#xff1a; 前端里程计能给出一个短时间…

markdown学习笔记

markdown学习笔记 1.文字&#xff08;依靠HTML&#xff09; 1.1文字缩进-空格转义符 单字符空&#xff1a;&emsp; 半字符空&#xff1a;&ensp;1.2文字对齐 「居中&#xff1a;」<center> 居中 </center> or <p align"center"> 居中 …