【MongoDB篇】MongoDB的数据库操作!
目录
- 引言
- 第一节:数据库的“诞生”——如何创建数据库?🤔
- 第二节:数据库的“查阅”——看看我的数据库们!🕵️♀️
- 第三节:数据库的“切换”——我在哪个房间干活?➡️🚪
- 第四节:数据库的“销毁”——再见,这个房间!💥👋
- 第五节:权限与考量——不是谁都能随便操作的!🔐
- 第六节:总结与展望 (数据库篇) 📚✨
🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支持一下,感谢🤗!
其他优质专栏: 【🎇SpringBoot】【🎉多线程】【🎨Redis】【✨设计模式专栏(已完结)】…等
如果喜欢作者的讲解方式,可以点赞收藏加关注,你的支持就是我的动力
✨更多文章请看个人主页: 码熔burning
来,各位csdn的佬友们!💻📱 这是一篇专门为你量身定制的,关于如何“驯服”MongoDB 数据库(而不是里面的数据)的干货文章!请接收!👇
看之前可以先了解一下MongoDB是什么:【MongoDB篇】万字带你初识MongoDB!
引言
嘿!各位未来的数据库大侠们!👋 欢迎来到我的技术专栏!我是你们的幽默段子手,今天,咱们要深入聊聊 MongoDB 这个“自由文档世界”的基石——数据库操作!
数据库,就像是你在 MongoDB 这个大仓库里划分出的一个个独立的“房间”或者“区域”🏦。每个区域都有自己的名字,用来存放不同类别的数据。比如你可以有一个 ecommerce
数据库放电商数据,一个 blog
数据库放博客文章,一个 users
数据库放用户资料(虽然通常用户也会放在某个应用数据库里)。
在 MongoDB 里,对数据库本身的操作,跟你在关系型数据库里的体验会有些“小不同”!准备好了吗?让我们一起揭开这些操作的神秘面纱!😎
第一节:数据库的“诞生”——如何创建数据库?🤔
在很多数据库系统里,创建数据库通常是一个明确的命令,比如 CREATE DATABASE mydatabase;
。但是在 MongoDB 里,它的做法有点“懒惰”和“顺其自然”!🧘♂️
你并不需要一个独立的 CREATE DATABASE
命令来预先创建一个数据库。
那它是怎么诞生的呢?
答案是通过 use <database name>
命令,并在你第一次向这个数据库里的集合中写入数据(比如插入文档)时,MongoDB 会自动为你创建这个数据库!✨
是的,你没听错!只要你通过 use
命令指定了一个数据库名,然后执行了任何写操作(insertOne
, updateMany
, deleteMany
等等)或者创建了集合 (createCollection
),如果这个数据库之前不存在,MongoDB 就会在幕后悄悄地把它创建出来!
示例:
假设你想要创建一个名为 mydatabase
的数据库:
-
打开你的 MongoDB Shell (
mongosh
)。 -
输入命令
use mydatabase;
use mydatabase;
shell 会提示你
switched to db mydatabase
。此时,你看起来是进入了这个数据库,但如果这是个新名字,它还没有真正被创建出来,也不会出现在show dbs
的列表里!就像你给一个空房间起了个名字,但房间里啥都没有,对外人看来这个房间仿佛不存在一样!👻
-
现在,向这个数据库里的某个集合插入一个文档(或者创建集合):
db.mycollection.insertOne({ greeting: "Hello, MongoDB Database!" });
这条命令会做两件事:
- 如果
mydatabase
数据库不存在,它会被创建。 - 如果
mycollection
集合在mydatabase
数据库里不存在,它也会被创建。 - 然后,文档被插入到
mycollection
集合里。
- 如果
此时,如果你再运行 show dbs;
命令,你就会看到 mydatabase
赫然出现在列表里了!🎉
核心概念: MongoDB 数据库的创建是惰性的,它发生在第一次有数据写入这个数据库时。use
命令更多的是用来切换你当前操作的数据库上下文!
第二节:数据库的“查阅”——看看我的数据库们!🕵️♀️
想知道你的 MongoDB 里住着哪些“邻居”数据库?简单!
使用 show dbs;
命令,或者它的别名 show databases;
。
show dbs;
执行这个命令,你会看到一个列表,大概长这样:
列表会显示数据库的名称以及它们占用的存储空间(通常是一个近似值)。
这里有几个你可能会经常看到的“系统级”数据库:
admin
:这是 MongoDB 的管理数据库。用于存储用户、角色和权限信息,以及一些服务器级别的命令(比如关机、复制集配置等)。管理 MongoDB 的安全性和集群状态,通常需要在这个库里操作。它是你的“控制中心”!🕹️local
:这个数据库用于存储复制集成员的本地数据。比如复制集配置、操作日志 (oplog) 等。这些数据是本地的,不会被复制到其他成员。它是每个节点自己的“日记本”!📔config
:如果你部署了分片集群 (Sharded Cluster),这个数据库就会出现。它存储了集群的元数据信息,比如分片信息、数据分布情况等。它是分片集群的“大脑”!🧠
除了这些系统数据库,你通过 use
命令并写入数据创建的用户数据库也会出现在这个列表里。
注意: 只有包含数据的数据库(或者在 admin
中有用户或角色引用的数据库)才会出现在 show dbs
的列表中。一个空数据库 (use new_empty_db;
之后什么都没做) 是不会显示的,直到你往里塞点东西!📦
第三节:数据库的“切换”——我在哪个房间干活?➡️🚪
正如我们在创建数据库时提到的,use <database name>
命令是你在不同数据库之间“跳跃”的主要方式。
use blog; // 切换到 blog 数据库
当你执行 use
命令后,MongoDB Shell 的提示符通常会变成你当前所在的数据库名称(比如 blog>
),这表示你现在所有的操作(创建集合、插入文档、查询等等)都将默认针对这个数据库进行。
这个操作非常频繁,就像你在电脑里切换文件夹一样方便!📁➡️📂
获取当前数据库:
在 Shell 里,你可以随时使用 db
对象来代表当前你所在的数据库。打印 db
会显示当前数据库的名称:
db; // 输出当前数据库名称,比如 blog
你可以通过 db.<collection_name>.<operation>
的方式来操作当前数据库中的集合。
第四节:数据库的“销毁”——再见,这个房间!💥👋
有时候,某个数据库完成了它的历史使命,里面的数据也不再需要了。比如一个测试数据库,或者一个旧项目的数据库。这时候,你可以选择删除它!
警告: 删除数据库是一个非常危险的操作! 一旦删除,数据库中的所有集合和所有文档都将永久丢失!不可恢复! 在执行这个操作之前,请务必再三确认,并在生产环境谨慎至极,最好先进行备份!💣💾
删除数据库的命令是 db.dropDatabase()
。
-
首先,你需要切换到要删除的数据库。 就像你得走到那个房间门口才能拆掉它一样!
use myoldproject_db; // 切换到要删除的数据库
-
然后,执行删除命令。
db.dropDatabase();
执行这个命令后,MongoDB 会返回一个结果,告诉你操作是否成功。通常你会看到 { "dropped" : "myoldproject_db", "ok" : 1 }
这样的输出,表示 myoldproject_db
数据库已经被成功删除了。
再运行 show dbs;
,你会发现刚才删除的数据库已经不见了!💨
重要注意事项:
- 你不能在执行
dropDatabase()
命令时指定要删除哪个数据库,它总是删除你当前所在的数据库 (db
)。所以,切换到正确的数据库是第一步,也是最关键的一步! 别删错了! - 删除
admin
,config
,local
这些系统数据库是非常危险的,可能会导致 MongoDB 无法正常工作!强烈不建议删除它们!这些是 MongoDB 正常运行的“生命线”!❤️🩹 - 执行
dropDatabase()
操作需要足够的权限。通常需要dropDatabase
或dbAdmin
等角色权限。如果你连接的用户没有这些权限,操作会失败。
第五节:权限与考量——不是谁都能随便操作的!🔐
在实际应用中,特别是生产环境,你不可能允许所有人对所有数据库进行任意操作。权限管理是数据库安全的核心。
如前所述,MongoDB 的用户和权限信息存储在 admin
数据库中。你可以创建用户,并赋予他们对特定数据库的特定权限(通过角色)。
例如,你可能创建一个用户,他只允许对 ecommerce
数据库进行读写操作,但无权删除 ecommerce
数据库,也无权访问其他数据库(比如 blog
或 admin
)。
对于数据库级别的操作,比如 dropDatabase
,通常需要用户拥有该数据库的 dropDatabase
权限,或者拥有 dbAdmin
、dbOwner
等更高级别的权限。而查看所有数据库 (show dbs
) 则通常需要 listDatabases
或更高级别的权限。
所以在进行数据库操作时,如果你遇到权限问题,检查一下你当前连接的用户的权限设置是非常必要的!🔑
第六节:总结与展望 (数据库篇) 📚✨
好!关于 MongoDB 数据库本身的操作,咱们就聊到这里!
核心要点回顾一下:
- 创建数据库: 主要通过
use
命令切换,在第一次写入数据时惰性创建。 - 查看数据库: 使用
show dbs;
命令。 - 切换数据库: 使用
use <database name>;
命令。 - 获取当前数据库: 使用
db
对象。 - 删除数据库: 使用
db.dropDatabase();
,危险! 务必先切换到目标数据库! - 系统数据库:
admin
,config
,local
很重要,不要随意删除。 - 权限: 数据库操作需要相应的权限,特别是在安全配置过的环境中。
这些就是你在 MongoDB 中管理数据库层面的主要知识点了!虽然操作命令不多,但理解它“惰性创建”的特性以及删除操作的风险非常重要!
相关文章:
【MongoDB篇】MongoDB的数据库操作!
目录 引言第一节:数据库的“诞生”——如何创建数据库?🤔第二节:数据库的“查阅”——看看我的数据库们!🕵️♀️第三节:数据库的“切换”——我在哪个房间干活?➡️🚪…...
react-新建项目复用node_modules
每次新建定制时,前端都需要npm i来安装依赖,耗时长 失败多。 可以把这个bat文件放到新建分支的前端目录下,修改后双击bat文件运行,如果不需要添加修改依赖,无需运行npm i node_modules.bat里面的内容如下:…...
unity Orbbec Femto Bolt接入unity流程记录 AzureKinectExamples 插件 使用记录
奥比中光的深度相机Orbbec Femto Bolt是Microsoft的Azure Kinect DK的升级版,根据官网的文档配置环境遇到了一些问题,记录一下。 注意: 官网文档链接:Femto Bolt文档 1、首先连接相机到电脑USB3.0,接通电源…...
信息科技伦理与道德3-4:面临挑战
1 人机结合 1.1 人机结合的挑战 如何处理好人与机器的决策的关系?智能决策的不透明、不可解释性…出了问题该谁负责? 案例1:设想救护车调度系统造成混乱 某城市使用一个机器学习平台来进行城市里医院的救护车调度工作。起初,这个…...
对比测评:为什么AI编程工具需要 Rules 能力?
通义灵码 Project Rules 在开始体验通义灵码 Project Rules 之前,我们先来简单了解一下什么是通义灵码 Project Rules? 大家都知道,在使用 AI 代码助手的时候,有时候生成的代码不是自己想要的,或者说生成的代码采纳后…...
git学习之git常用命令
1. 初始化仓库 git init初始化一个新的 Git 仓库。 2. 克隆远程仓库 git clone <repository-url>从远程服务器克隆一个已有仓库到本地。 3. 配置用户名和邮箱 git config --global user.name "Your Name" git config --global user.email "youexampl…...
The Open Group 参加雷丁博物馆的数字革命展览
The Open Group 参加了雷丁博物馆的数字革命展览,庆祝雷丁市转型为数字中心60周年。 展览于3月18日(星期二)向公众开放,将持续至2025年12月24日。展览旨在纪念雷丁市令人惊叹的科技之旅,从1964年数字设备公司ÿ…...
Linux[配置vim]
Linux[配置vim] 我这里的环境是xshell8的虚拟机,Ubuntu 配置好了以后功能嘎嘎多 以下是为 Ubuntu 配置功能增强版 Vim 的详细步骤,包含代码高亮、插件管理、自动补全、文件导航等常用功能: 1. 安装最新版 Vim sudo apt update sudo apt install vim-g…...
【数据结构】图论存储结构深度解析:邻接多重表如何实现无向图O(1)删边?邻接矩阵/链表/十字链对比
邻接多重表 导读一、有向图的存储结构二、邻接多重表三、存储结构四、算法评价4.1 时间复杂度4.2 空间复杂度 五、四种存储方式的总结5.1 空间复杂度5.2 找相邻边5.3 删除边或结点5.4 适用于5.5 表示方式 六、图的基本操作结语 导读 大家好,很高兴又和大家见面啦&a…...
【AlphaFold2】Feature extraction:提取特征,为模型输入做准备|Datapipeline讲解
博主简介:努力学习的22级计算机科学与技术本科生一枚🌸博主主页: Yaoyao2024往期回顾:【深度学习】多头注意力机制的实现|pytorch每日一言🌼: 学习成绩只是表象,而学习能力才是伴随一身的结果🌺…...
Android 实现一个隐私弹窗
效果图如下: 1. 设置同意、退出、点击用户协议、点击隐私协议的函数参数 2. 《用户协议》、《隐私政策》设置成可点击的,且颜色要区分出来 res/layout/dialog_privacy_policy.xml 文件 <?xml version"1.0" encoding"utf-8"?&…...
第三方软件测试报告如何凭借独立公正与专业权威发挥关键作用?
在软件项目里,第三方软件测试报告起着极为关键的作用。第三方有着中立客观的立场。第三方具备专业能力。凭借这些,第三方能为软件质量评估提供可靠依据。下面要从不同方面介绍第三方软件测试报告。 独立公正性 第三方测试机构与软件开发方、使用方不存…...
QT控件 参考Qt的PIMPL设计模式实现使用QWidget控件绘制3D饼状图表和3D柱状图表,使用QChartView绘制圆柱体图表
整体绘制效果就是:Qt 实现3维饼状图 中的内容, 只不过我借鉴了Qt的PIMPL模式重新封装了整个实现过程 实现效果展示 目录导读 实现效果展示前言绘制3D饼状图表PIMPL模式设计类具体实现计算圆弧中心判断点是否在某个扇区中在私有类中绘制绘制3D柱状图表PIMPL模式设计类具体实现绘…...
Android Q允许低内存启用系统弹窗
如果SYSTEM_ALERT_WINDOW权限可用,则返回true。 *从Q开始,在低ram手机上禁用SYSTEM_ALERT_WINDOW。 vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/Utils.java public static boolean isSystemAlertWindowEnabled(Co…...
Leetcode 3532. Path Existence Queries in a Graph I
Leetcode 3532. Path Existence Queries in a Graph I 1. 解题思路2. 代码实现 题目链接:3532. Path Existence Queries in a Graph I 1. 解题思路 这一题算是一个比较典型的DSU的题目,我们就是不断地根据前后节点的距离将其进行聚类,然后…...
AI Agent Protocols:现状、挑战与未来展望
一、引言 在当今人工智能飞速发展的时代,大语言模型(LLMs)的进步使得LLM智能体在各个行业得到了广泛的应用,如客户服务、内容生成、数据分析和医疗保健等领域。 然而,随着越来越多的LLM智能体被部署,一个…...
自动化立库/AGV物流仿真详细步骤
以下是一种可以在预算和周期内实现自动化立库及AGV 方案仿真分析的方法: 一、工具选择 软件工具FlexSim:这是一款流行的离散事件仿真软件。它具有直观的图形用户界面,通过简单的拖拽操作就可以构建自动化立库和 AGV 的模型。其内置的丰富的…...
【题解-Acwing】872. 最大公约数
题目:872. 最大公约数 题目描述 给定 n 对正整数 ai,bi,请你求出每对数的最大公约数。 输入 第一行包含整数 n。 接下来 n 行,每行包含一个整数对 ai,bi。 输出 输出共 n 行,每行输出一个整数对的最大公约数。 数据范围 1 ≤ n ≤ 105, 1 ≤ai, bi ≤ 2109 时空限…...
62.微服务保姆教程 (五) Seata--微服务分布式事务组件
Seata–微服务分布式事务组件 一、什么是分布式事务 1.什么是事务 事务指的是一个操作单元,在这个操作单元中的所有操作最终要保持一致的行为,要么所有操作都成功,要么所有的操作都被撤销。 2.本地事务 本地事务是指基于关系型数据库的事务,也称为传统事务。大多数场景…...
【算法练习】归并排序和归并分治
文章目录 1.归并排序1.1 递归版本1.2 非递归版本 2.归并分治2.1 计算数组的小和2.2 计算翻转对 1.归并排序 归并排序的核心步骤是: 拆分:将无序数组不断对半拆分成小块,直到每个小块只剩一个元素(自然有序)。 合并&a…...
从SOA到微服务:架构演进之路与实践示例
一、架构演进背景 在软件开发领域,架构风格随着业务需求和技术发展不断演进。从早期的单体架构,到面向服务架构(SOA),再到如今的微服务架构,每一次变革都是为了解决当时面临的核心问题。 二、SOA架构解析 2.1 SOA核心概念 SOA&…...
vue+cesium线流动纹理
index.vue页面 <!--线流动纹理实现--> <template><div id"mapContainerFirst"></div> </template> <script lang"ts" setup> import { init as initPolylineTrailLinkMaterialProperty } from ./PolylineTrailLinkM…...
深度学习·经典模型·SwinTransformer
SwinTransformer 主要创新点:移动窗口,基于窗口的注意力计算 Patch Embedding 下采样打包为Pacth:可以直接使用Conv2d 也可以先打包后使用embedding映射。 Patch Merging 类似池化的操作,压缩图片大小,同时通道数增多ÿ…...
在开发板上如何处理curl: (60) SSL certificate problem
目录 引言 问题解析 解决方法 跳过证书验证 采用证书认证 结语 引言 最近一直推荐学生们在课程实验中使用curl及其libcurl。curl 是一个强大的命令行工具,用于在命令行中进行数据传输。它支持多种协议,如 HTTP、HTTPS、FTP、FTPS、SCP、SFTP 等。…...
Ansible 铸就 Linux 安全之盾(Ansible Builds Linux Security Shield)
Ansible 铸就 Linux 安全之盾:自动化基线检查与防护 在当今网络安全形势日益严峻的背景下,Linux 系统作为服务器和关键基础设施的核心,其安全防护显得尤为重要。Ansible 作为一款强大的自动化运维工具,能够帮助我们高效、可靠地实…...
字符串(格式化字符串字面值)进行输出
在 Python 中,print(fnew_obs:{new_obs}) 这种形式是使用 f 字符串(格式化字符串字面值) 进行输出,它可以打印 任何可转换为字符串的数据类型,并且支持在字符串中嵌入表达式。以下是详细说明: 1. 基本功能…...
微服务架构详解:从概念到实践
目录 前言1. 微服务架构概述1.1 什么是微服务?1.2 微服务的核心思想 2. 微服务的优势2.1 可扩展性2.2 高灵活性2.3 容错性和可靠性2.4 高效开发与部署 3. 微服务的挑战3.1 系统复杂性增加3.2 分布式事务和数据一致性3.3 部署和运维的复杂性 4. 微服务的实施与实践4.…...
激光驱鸟:以科技重构生态防护边界
技术原理 激光驱鸟装置的核心机制基于鸟类视觉系统特性。其发射的绿色激光束(波长通常为532纳米)处于鸟类视网膜敏感光谱范围内,当激光束在特定角度扫描时,会形成动态光斑干扰。鸟类视网膜中视锥细胞对绿色光的高敏感度使其产生应…...
【Python魔法方法(特殊方法)】
在 Python 中,许多运算符都可以进行重载,以下是一些常见运算符及其对应的魔法方法(特殊方法): 算术运算符 加法 :__add__ 用于定义对象相加的行为。例如,当你对两个自定义类的实例使用 运算符…...
centos上安装python的3.13版本
在 CentOS 上安装 Python 3.13(或其它自定义版本)最推荐的方法是通过源码编译安装,不会影响系统自带的 Python2/Python3 环境,也更灵活可控。 以下步骤适用于: ✅ CentOS 7 / 8 / 9 ✅ 安装 Python 3.13(…...
实习技能记录【4】-----消息分发中的观察者模型
观察者 观察者模式(Observer Pattern)是一种行为型设计模式,主要用于定义对象之间的一对多依赖关系,让多个观察者对象能够同时监听某个主题对象的状态变化,并在主题对象状态改变时自动通知所有观察者对象。 参考b站博…...
Linux 下编译BusyBox
一、linux下编译 1.拉取busybox源码 git clone https://github.com/mirror/busybox.git 内容如下 2.配置make,建议在linux下单独开一个终端执行 进入busybox源码目录,使用如下命令 make menuconfig 3.报错 解决办法: 安装ncurses sud…...
Linux《进程概念(中)》
在之前的Linux《进程概念(上)》当中我们已经了解了进程的基本概念以及如何去创建对应的子进程,那么接下来在本篇当中我们就继续来进程的学习,在本篇当中我们要学习到进程的状态、进程的优先级、进程切换、Linux真实的调度算法——…...
Linux Vim 使用 显示行号、替换、查找、多文件打开等骚操作
目录 简述 vim的三种模式 概述 转换方式 文本编辑 命令模式 插入(编辑)模式 底行模式 搜索关键字 显示行号 替换 多文件打开 简述 vi编辑器是Linux系统下标准的编辑器。 那么简单的理解,就像是Windows下的记事本。 补充&a…...
AimRT 从零到一:官方示例精讲 —— 三、Executor示例.md
Executor示例 官方仓库:executor 配置文件(configuration_executor.yaml) 依据官方示例项目结构自行编写YAML配置文件: # 基础信息 base_info:project_name: Logger # 项目名称build_mode_tags: ["EXAMPLE", &quo…...
只把夜莺监控当作告警来使用:一种轻量化的运维实践
只把夜莺监控当作告警来使用:一种轻量化的运维实践 在现代的 IT 运维体系中,监控和告警是两个经常被一同提及的概念。然而,在实际工作中,很多团队对监控系统的需求并不一定全面覆盖指标采集、可视化展示、告警触发等功能…...
按键精灵安卓ios辅助工具脚本:实用的文件插件(lua开源)
亮点:此lua插件可再android和ios上通用 1、获取文件的属性 2、改变当前的工作路径为dirpath 3、获取当前的工作路径 4、创建文件夹,支持多级创建 5、删除文件夹 6、递归遍历文件夹 7、设置文件的访问时间和修改时间 函数原型:lfs.Attribute(…...
水库现代化建设指南-水库运管矩阵管理系统建设方案
政策背景 2023年8月24日,水利部发布的水利部关于加快构建现代化水库运行管理矩阵的指导意见中指出,在全面推进水库工程标准化管理的基础上,强化数字赋能,加快构建以推进全覆盖、全要素、全天候、全周期“四全”管理,完…...
若依后台管理系统-v3.8.8-登录模块--个人笔记
各位编程爱好者们,你们好!今天让我们来聊聊若依系统在登录模块的一些业务逻辑,以及本人的一些简介和心得,那么废话不多说,让我们现在开始吧。 以下展示的这段代码,正是若依在业务层对应的登录代码…...
Flip PDF Plus Corp7.7.22电子书制作软件
flip pdf plus corporate7.7.22中文版由FlipBuilder官方出品的一款企业级的翻页电子书制作软件,拥有丰富的模板,主题和动画场景,每本书最大页数1000页,每本书的最大大小1GB,即可以帮助企业用户制作好丰富的电子书籍。 …...
公路安全知识竞赛主持稿串词
合 :尊敬的各位领导、各位来宾 、各位选手 : 大家上午 好! 男 :安全就是生命,安全就是效益,安全是一切工作的重中之重!安全生产只有满分,没有及格。只有安全生产这个环节不出差错,我…...
vscode 配置qt
工具:vscode、qttools、qtconfigure Search Mode改成基于cmake的。 # 在项目中指定Qt的路径 set(Qt5_DIR "/home/jp/qt-everywhere-src-5.12.9/arm-qt/lib/cmake/Qt5") # 用于指定 Qt5 的安装路径 find_package(Qt5 REQUIRED COMPONENTS Widgets)这样就…...
Node.js 事件循环和线程池任务完整指南
在 Node.js 的运行体系中,事件循环和线程池是保障其高效异步处理能力的核心组件。事件循环负责调度各类异步任务的执行顺序,而线程池则承担着处理 CPU 密集型及部分特定 I/O 任务的工作。接下来,我们将结合图示,详细剖析两者的工作…...
Java之BigDecimal
BigDecimal 是 Java 中用于高精度计算的类,特别适合需要精确十进制运算的场景,如金融计算、货币运算、概率计算等。 为什么需要 BigDecimal类 解决浮点数精度问题:float 和 double 使用二进制浮点运算,无法精确表示某些十进制小数…...
Qt5与现代OpenGL学习(四)X轴方向旋转60度
把上面两张图像放到D盘1文件夹内: shader.h #ifndef SHADER_H #define SHADER_H#include <QDebug> #include <QOpenGLShader> #include <QOpenGLShaderProgram> #include <QString>class Shader { public:Shader(const QString& verte…...
基于LVS+Keepalived+NFS的高可用负载均衡集群部署
目录 项目功能 2 项目的部署 2.1 部署环境介绍 2.2 项目的拓扑结构 2.3 项目环境调试 2.4 项目的部署 2.4.1 安装软件; 2.4.2 NFS服务器配置 2.4.3 Web节点配置 2.5 项目功能的验证 2.6 项目对应服务使用的日志 项目功能 负载均衡功能 实现原理:基于LVS(D…...
人工智能数学基础(四):线性代数
线性代数是人工智能领域的核心数学工具之一,广泛应用于数据表示、模型训练和算法优化等多个环节。本文将系统梳理线性代数的关键知识点,并结合 Python 实例,助力读者轻松掌握这一重要学科。资源绑定附上完整资源供读者参考学习! …...
基于C++的IOT网关和平台1:github项目ctGateway
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
LeetCode 2962.统计最大元素出现至少 K 次的子数组:滑动窗口
【LetMeFly】2962.统计最大元素出现至少 K 次的子数组:滑动窗口 力扣题目链接:https://leetcode.cn/problems/count-subarrays-where-max-element-appears-at-least-k-times/ 给你一个整数数组 nums 和一个 正整数 k 。 请你统计有多少满足 「 nums 中…...
Nginx反向代理的负载均衡配置
Nginx 负载均衡详解 在互联网应用中,随着网站访问量的不断攀升,服务器的服务模式也需要进行相应升级。诸如分离数据库服务器、将图片作为单独服务等操作,这些都属于简单的数据负载均衡,其目的是将压力分散到不同机器上。而来自 We…...