MongoDB简介
数据库,顾名思义,是保存数据的地方。中华文化博大精深,短短3个文字,就定义了一个强大的数据管理和读写方式出来。数据库,管理的对象是数据。称为库,表示数据在库中有组织,相互之间有微妙的关系。数据怎样进入库,库的容量大小有多少,库中的数据怎样分区保存,采用怎样的形式来保存,怎样快速的定位到数据库中的数据,当库满的时候,怎样实现扩充。与普通的仓库中的货物不同,货物可以损失可以再生产或采购。当数据造成损失时,应该怎样减少损失,或者恢复数据。同时,访问数据库,哪些系统和操作人员才可以访问数据库,怎样防止数据丢失,保证数据安全,都是数据库需要考虑的问题。
以oracle为代表的关系型数据库,曾经是各种数据库形式中最主流的数据库形式。数据库设计按照固定的模式,表示数据之间的关联关系。这种关系型数据库,对数据进行了有效的分类组织并减少数据冗余。 通过建立索引,主外键关联等措施,提高了数据读取的效率。定义结构化查询语句(sql)来查询数据,实现了数据的方便读写。数据库内部的解析优化器,为大量数据读取提供了性能保障。
自mongodb 1.0版本发布以来,其文档的简单便捷性,结构上的灵活性,数据读取的高效性逐渐受到开发人员的广泛关注和欢迎。带动了文档型数据库,内存数据库等不需要使用sql查询的数据库(NoSql数据库)的发展。近几年,各种类型的数据库搭配使用,为系统设计提供了更多的解决方案。而NoSql的概念从不需要sql语句查询,也变成了不只是sql查询语句(not only sql)。
自本文开始,通过对官网文档的翻译整理和时间,结合多年开发经验,对Mongodb进行深入浅出的介绍,并准备了一些列mongodb的文章和使用技巧。欢迎关注订阅。
文档型数据库
mongodb是文档型数据库,数据库中的一条记录,就是一个文档。文档是由键值对构成的结构化数据。类似JSON数据结构。文档中的数据,也可以是数组,日期,或其他文档。
{name: "sue", //键值对,字段-name, 值:"sue",字符类型age: 26, //键值对,字段-age, 值:26, 数字类型status: "A", //键值对,字段-status, 值:"A", 字符类型groups: ['news', "sports"], //键值对,字段-groups, 值:['news', "sports"], 数组location: { //键值对,字段-groups, 值:{city: "New York"}, 对象city: "New York" //键值对,字段-city, 值:'New York', 字符类型}
}
多个文档放在一起,构成了一个文档集合。集合与关系型数据库中的表类似,但格式上比关系型数据库灵活,并不需要完全统一的格式和数据类型。
多个集合构成了一个数据库。而数据库包含在运行在虚拟机或物理机上的mongodb运行实例中。

在mongo数据库中,使用文档型数据库,为mongodb带来了三点优势
- 文档中的数据类型,能够映射到大多数开发语言支持的原生数据类型
- 支持嵌入式对象和数组类型,减少数据关联查询带来的开销
- 动态数据结构,支持更频繁的数据结构变化
mongodb的功能与优势
存储和查询数据,是数据库的基本功能,mongodb既然是数据库,就一定擅长类似数据增删改查这样基本的数据库操作。mongodb虽然支持动态数据结构,但开发人员也可以为集合定义统一数据模型,包含字段类型和字段上的验证和限制等。
此外,mongodb还有下面一些优势
-
- mongodb支持数据的聚合操作,为数据的查询,转换,分类排序提供了流水线式的工作方式。
- 提供安全的数据存储和访问方式,具备数据加密,完备的用户登陆验证管理功能
- 易于部署安装和拓展,支持横向添加多节点支持和纵向数据分片。
- 支持多种数据存储引擎,包括WireTiger存储引擎和In-Memory存储引擎。
- 高性能,内嵌数据模型,减少IO开销。支持索引查询,并支持为嵌套对象和数组建立索引。
- 高可用,支持故障自动切换主节点,具备数据冗余备份功能。
相关文章:
MongoDB简介
数据库,顾名思义,是保存数据的地方。中华文化博大精深,短短3个文字,就定义了一个强大的数据管理和读写方式出来。数据库,管理的对象是数据。称为库,表示数据在库中有组织,相互之间有微妙的关系。…...
尚硅谷hadoop3.x课程部分资料文件下载,jdk,hadoopjar包
jdk文件百度云下载: 链接:https://pan.baidu.com/s/1MCiGRzOZY8rAFpRJwA3tdw 提取码:kphl hadoop的jar包: 最新版官网链接: Index of /dist/hadoop/core/stable (apache.org) 百度云下载,3.3.3版…...
vue el-radio-group多选封装及使用
基于Element UI库的Vue组件,实现了一个单选/多选框组合的效果,可以根据 type 属性的不同值来切换单选框(默认)和按钮式单选框/多选框。 创建组件index.vue (src/common-ui/radioGroup/index.vue) <template><el-radio-g…...
Kaggle-水果图像分类银奖项目 pytorch Densenet GoogleNet ResNet101 VGG19
一些原理文章 卷积神经网络基础(卷积,池化,激活,全连接) - 知乎 PyTorch 入门与实践(六)卷积神经网络进阶(DenseNet)_pytorch conv1x1_Skr.B的博客-CSDN博客GoogLeNet网…...
TPLink-Wr702N 通过OpenWrt系统打造打印服务器实现无线打印
最近淘到了一个TPLink-Wr702N路由器,而且里面已经刷机为OpenWrt系统了,刚好家里有一台老的USB打印机,就想这通过路由器将打印机改为无线打印机,一番折腾后,居然成功了,这里记录下实现过程,为后面…...
[UGUI]实现从一个道具栏拖拽一个UI道具到另一个道具栏
在Unity游戏开发中,实现UI道具的拖拽功能是一项常见的需求。本文将详细介绍如何使用Unity的UGUI系统和事件系统,实现从一个道具栏拖拽一个UI道具到另一个道具栏的功能。 一、准备工作 首先,你需要在Unity中创建两个道具栏和一些UI道具。道具…...
微服务--08--Seata XA模式 AT模式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 分布式事务Seata 1.XA模式1.1.两阶段提交1.2.Seata的XA模型1.3.优缺点 AT模式2.1.Seata的AT模型2.2.流程梳理2.3.AT与XA的区别 分布式事务 > 事务–01—CAP理论…...
Doris 数据导入一:Broker Load 方式
1.Doris导入数据的方式总结 导入(Load)功能就是将用户的原始数据导入到 Doris 中。导入成功后,用户即可通过 Mysql 客户端查询数据。为适配不同的数据导入需求,Doris 系统提供了6种不同的导入方式。每种导入方式支持不同的数据源,存在不同的使用方式(异步,同步)。 所有…...
docker踩坑记录:docker容器创建doris容器间无法通讯问题
背景: 开发大数据平台,使用doris作为数据仓储,使用docker做集群部署,先进行开发环境搭建,环境为BE1;FE1,原来使用官方例子,但是官方例子是创建了一个bridge使用172.20.80.0/24通讯,…...
springboot+java校园自助洗衣机预约系统的分析与设计ssm+jsp
洗衣服是每个人都必须做的事情,而洗衣机更成为了人们常见的电器,但是单个洗衣机价格不菲,如果每人都买,就会造成资源的冗余。所有就出现了公用设备,随着时代的发展,很多公用都开始向着无人看守的自助模式经…...
TCP简介及特性
1. TCP协议简介 TCP是Transmission Control Protocol的简称,中文名是传输控制协议。它是一种面向连接的、可靠的、基于IP的传输层协议。两个TCP应用之间在传输数据的之前必须建立一个TCP连接,TCP采用数据流的形式在网络中传输数据。TCP为了保证报文传输的…...
ElasticSearch 排障常用方法
文章目录 1,集群状态,节点在线情况,集群参数配置2,查看异常索引、分片,分析异常原因,手动分配分片 1,集群状态,节点在线情况,集群参数配置 GET _cluster/health?pretty…...
【SA8295P 源码分析 (四)】136 - QNX 如何抓取系统 log 方法 之 网络部分日志抓取方法
【SA8295P 源码分析】136 - QNX 如何抓取系统 log 方法 之 网络部分日志抓取方法 一、slog2info二、获取当前系统网络信息三、tracelogger四、qscan.sh : 用于收集 qnx 文件系统 权限、checksums 等信息系列文章汇总见:《【SA8295P 源码分析 (四)】网络模块 文章链接汇总 - 持…...
传统算法:使用Pygame实现SVM(支持向量机)算法
使用 Pygame 演示了支持向量机(SVM)在二维数据上的分类过程。以下是代码的主要步骤和原理解释: 1、初始化和基本设置 Pygame 初始化: 通过 pygame.init() 初始化 Pygame。 定义颜色和屏幕大小: 定义了一些颜色常量(WHITE, BLACK, RED, BLUE)和屏幕的宽度和高度。 创建…...
cookie wzws_sess** 逆向
声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 网站: aHR0…...
JIRA 基本使用
该页面可以: 查看个人基本信息以及归属的邮件组修改常用参数配置查看指给自己的 Open 问题查看自己最近的活动记录等 权限管理 Project 权限管理 JIRA 项目有三种通用权限方案: 公开权限方案(默认禁止使用此方案):…...
什么是JVM的内存模型?详细阐述Java中局部变量、常量、类名等信息在JVM中的存储位置
导航: 【Java笔记踩坑汇总】Java基础JavaWebSSMSpringBootSpringCloud瑞吉外卖/黑马旅游/谷粒商城/学成在线设计模式面试题汇总性能调优/架构设计源码-CSDN博客 目录 一、JVM基本介绍 二、JVM内存模型 2.0 概述 2.1 类加载子系统 2.2 运行时数据区 2.2.0 基本…...
c#学习相关系列之as和is的相关用法
一、子类和父类的关系 public class Program{static void Main(string[] args){Animal animal new Dog();// Dog dog (Dog)new Animal(); 编译成功,运行报错Dog dog (Dog)animal;Dog dog new Dog();Animal animal dog; //等价于Animal animal new Dog();}}pub…...
excel合并单元格教程
在表格里,总是会遇到一级表格、二级表格的区别,这时候一级表格会需要合并成一个大格子,那么excel如何合并单元格呢,其实使用快捷键或者功能键就可以了。 excel如何合并单元格: 1、首先我们用鼠标选中所有要合并的单元…...
img[src=““] img无路径情况下,页面出现边框
在开发过程中遇到一个问题就是当img标签的src为空时,会出现边框,影响美观 其实我们可以直接加上这个就可以解决了 img[src""],img:not([src]){opacity:0; }...
语言的边界,与软件的命运
. GIF文件结构 相比于 WAV 文件的简单粗暴,GIF 的结构要精密得多,因为它天生是为了网络传输而设计的(包含了压缩机制)。 当我们用二进制视角观察 GIF 时,它是由一个个 数据块(Block) 组成的&…...
如何用Awesome-Obsidian打造个性化知识管理神器:终极美化指南
如何用Awesome-Obsidian打造个性化知识管理神器:终极美化指南 【免费下载链接】awesome-obsidian 🕶️ Awesome stuff for Obsidian 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-obsidian 想要将Obsidian从简单的Markdown编辑器变身为功…...
2026年了,为什么很多企业做了智慧气象,结果还是没把风险降下来?
上个月,和一位新能源集团的运营负责人聊天,他抛出一个百思不得其解的问题:“我们花了300多万上了智慧气象系统,接了精细化预报,预警信息每天推送到手机、电脑、大屏,三个渠道同步。结果上个月一场雷暴&…...
GeographicLib:高精度大地测量计算C++库架构解析与实战指南
GeographicLib:高精度大地测量计算C库架构解析与实战指南 【免费下载链接】geographiclib Main repository for GeographicLib 项目地址: https://gitcode.com/gh_mirrors/ge/geographiclib GeographicLib是一个专为大地测量和地理空间计算设计的C库…...
LLM推理流式响应延迟骤降73%:FastAPI 2.0 + asyncpg + Redis Stream 实战调优,附可复用中间件代码库
第一章:LLM推理流式响应延迟骤降73%:FastAPI 2.0 asyncpg Redis Stream 实战调优,附可复用中间件代码库在高并发LLM服务场景中,传统同步I/O与阻塞式数据库访问常导致首字节延迟(TTFB)飙升。我们通过重构请…...
React Native Keyboard Controller部署指南:生产环境最佳配置
React Native Keyboard Controller部署指南:生产环境最佳配置 【免费下载链接】react-native-keyboard-controller Keyboard manager which works in identical way on both iOS and Android 项目地址: https://gitcode.com/gh_mirrors/re/react-native-keyboard-…...
DDS信号发生器设计避坑指南:基于FPGA的AD9767驱动常见问题与优化技巧
FPGA驱动AD9767实战避坑手册:从时序优化到DDS精度提升的进阶技巧 当你在深夜调试FPGA与AD9767的接口时,示波器上那些不规则的毛刺和频率偏差是否曾让你抓狂?作为一款经典的高速14位DAC芯片,AD9767在信号发生、通信系统等领域应用广…...
vscode如何添加ollama本地模型-实现token自由
vscode一直支持的都是云端闭源的模型,例如 GPT Claude等等,当这些闭源模型的免费额度用完之后,则需要付费继续使用。本文介绍的是vscode接入ollama的本地模型,从而实现token自由。 ollama 首先需要到ollama的官网下载ollama应用…...
AI时代:重塑核心竞争力
一、企业的核心竞争力重塑未来企业的护城河是AI构建的流程,而不是的数据。 过去我们说数据是石油,但在 LLM 时代,通用数据的价值在被快速拉平。而公司内部独特的、经过千锤百炼的工作流程、决策逻辑、操作手册,这些才是无法被轻易…...
PIPAL数据集实战:如何用Elo评分系统提升图像质量评估的准确性
PIPAL数据集实战:如何用Elo评分系统提升图像质量评估的准确性 在计算机视觉领域,图像质量评估(IQA)一直是算法研发的关键环节。随着生成对抗网络(GAN)等技术的突破,传统IQA方法逐渐暴露出局限性…...
