当前位置: 首页 > news >正文

MongoDB 深度教程:当 NoSQL 遇上幽默

MongoDB 深度教程:当 NoSQL 遇上幽默

欢迎来到这个 MongoDB 的奇妙冒险!如果你已经了解了 MongoDB 的基础知识,比如 CRUD 操作、数据库和集合的概念,但总觉得自己只是停留在门口徘徊,那么今天这篇教程就是为你量身定做的。

🍃 初识 MongoDB,先暖暖身

连接数据库

mongosh --host localhost --port 27017

解释:这条命令相当于走进了 MongoDB 的大门,localhost 是你家客厅,27017 是门牌号。

查看数据库

show dbs

解释:这是 MongoDB 里的“环顾四周”,看看你家(服务器)里到底藏着哪些数据库。

切换数据库

use myDatabase

解释:这就像走进你家里的某个房间,myDatabase 是房间的名字。

🗃️ 集合和文档:MongoDB 的心脏

创建集合

db.createCollection("users")

解释:创建了一个名叫 users 的集合,集合就像是一个装满文件的文件夹。

插入数据

db.users.insertOne({ name: "Alice", age: 28, hobbies: ["coding", "baking"] })
db.users.insertMany([{ name: "Bob", age: 32 },{ name: "Charlie", age: 24 }
])

解释:insertOne 插入一条数据,insertMany 一次插入多条,效率更高。就像你买东西,可以一件一件结账,或者直接打包结算。

查询数据

db.users.find({ age: { $gt: 25 } })
db.users.findOne({ name: "Bob" })

解释:$gt 意思是“大于”,MongoDB 的查询语法简直像在跟你聊天。

更新数据

db.users.updateOne({ name: "Alice" },{ $set: { age: 29 } }
)
db.users.updateMany({ age: { $lt: 30 } },{ $inc: { age: 1 } }
)

解释:$set 是“更新成这个值”,$inc 是“给我加上点儿”。updateOne 针对第一条匹配的数据,updateMany 则是大批量操作。

删除数据

db.users.deleteOne({ name: "Charlie" })
db.users.deleteMany({ age: { $lt: 25 } })

解释:deleteOne 像温柔地说再见,deleteMany 则是果断地清理一群不合适的数据。

🔍 高级查询技巧

正则表达式查询

db.users.find({ name: { $regex: /^A/i } })

解释:这条命令帮你找到名字以“A”开头的用户,i 代表不区分大小写。MongoDB 内置的正则查询能力,堪称“数据侦探工具”。

聚合框架

db.users.aggregate([{ $match: { age: { $gte: 25 } } },{ $group: { _id: "$age", count: { $sum: 1 } } },{ $sort: { count: -1 } }
])

解释:聚合框架就像数据工厂流水线,$match 筛选原材料,$group 进行分类统计,$sort 排列整齐。整个流程一气呵成。

🚀 性能优化小妙招

创建索引

db.users.createIndex({ name: 1 })

解释:索引就像书的目录,查找信息时速度飞快。1 代表升序,-1 代表降序。

查看索引

db.users.getIndexes()

解释:这可以让你看看当前集合都有哪些索引,别让自己的索引“藏着掖着”。

分片(Sharding)

sh.enableSharding("myDatabase")
sh.shardCollection("myDatabase.users", { name: 1 })

解释:当数据量大得像银河系一样时,可以用分片把它们分布到不同服务器上,MongoDB 自动帮你管理这些“星系”。

🧪 实战案例:用户数据分析

假设你有一个用户数据库,想要找出所有年龄在 30 岁以上,且名字中包含“B”的用户,还要按年龄倒序排列。

db.users.find({age: { $gt: 30 },name: { $regex: /B/ }
}).sort({ age: -1 })

解释:先筛选出大于 30 岁的用户,再用正则找到名字里含有“B”的人,最后按年龄从大到小排序。MongoDB 就像是数据界的“福尔摩斯”,让复杂查询变得轻而易举。

🎯 总结

MongoDB 并不是一个“神秘莫测”的数据库,只要你掌握了它的思维方式,就能像玩积木一样自由组合各种操作。希望这个幽默风趣的教程能让你对 MongoDB 的理解更进一步!

如果你有更多关于 MongoDB 的问题,随时来问我吧!🍀

相关文章:

MongoDB 深度教程:当 NoSQL 遇上幽默

MongoDB 深度教程:当 NoSQL 遇上幽默 欢迎来到这个 MongoDB 的奇妙冒险!如果你已经了解了 MongoDB 的基础知识,比如 CRUD 操作、数据库和集合的概念,但总觉得自己只是停留在门口徘徊,那么今天这篇教程就是为你量身定做…...

windows安装linux子系统【ubuntu】操作步骤

1.在windows系统中开启【适用于Linux的Windows子系统】 控制面板—程序—程序和功能—启用或关闭Windows功能—勾选适用于Linux的Windows子系统–确定 2.下载安装Linux Ubuntu 22.04.5 LTS系统 Ununtu下载链接 3.安装完Ununtu系统后更新系统 sudo apt update4.进入/usr/l…...

通过k8s请求selfsubjectrulesreviews查询权限

当前是通过kubelet进行查询 curl --cacert /etc/kubernetes/pki/ca.crt \ --cert /var/lib/kubelet/pki/kubelet-client-current.pem \ --key /var/lib/kubelet/pki/kubelet-client-current.pem \ -d - \ -H "Content-Type: application/json" \ -H Accept: applicat…...

如何参与开源项目

目的 就是说一下如何参与开源的项目,通过参与QXlsx来说明开源项目是如何参与的,其它的github上的开源项目,也是这样的流程。 关于GitHub: GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行…...

Java 大视界 -- Java 大数据在智能金融监管中的应用与实践(77)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...

使用deepseek快速创作ppt

目录 1.在DeekSeek生成PPT脚本2.打开Kimi3.最终效果 DeepSeek作为目前最强大模型,其推理能力炸裂,但是DeepSeek官方没有提供生成PPT功能,如果让DeepSeek做PPT呢? 有个途径:在DeepSeek让其深度思考做出PPT脚本&#xf…...

如何在Python中创建和访问列表

在Python中,列表(list)是一种用于存储一系列有序项目的数据结构。这些项目可以是不同类型的,比如整数、浮点数、字符串,甚至是其他列表(形成嵌套列表)。以下是如何在Python中创建和访问列表的基…...

多线程下jdk1.7的头插法导致的死循环问题

20250208 多线程下jdk1.7的头插法导致的死循环问题 多线程下jdk1.7的头插法导致的死循环问题 【新版Java面试专题视频教程,java八股文面试全套真题深度详解(含大厂高频面试真题)】 jdk1.7在hashmap扩容时使用的是头插法,所以扩容…...

低代码系统-插件功能分析( 某道云)

本文主要把其的插件进行了简单分析,不做业务上的梳理,不做推荐。 可大致分为: 群机器人 信息查询 智能识别 实名验证类 数据库类 通知类 通知类 aPaas增强 考勤同步 财务类 类别 插件名称 功能简介 群机器人类 某钉机器人 即在表单处完…...

手搓基于CNN的Chest X-ray图像分类

数据集Chest X-ray PD Dataset 数据集介绍 - 知乎https://zhuanlan.zhihu.com/p/661311561 CPU版本 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import Dataset, DataLoader from torchvision import transforms, models import …...

Golang 并发机制-7:sync.Once实战应用指南

Go的并发模型是其突出的特性之一,但强大的功能也带来了巨大的责任。sync.Once是由Go的sync包提供的同步原语。它的目的是确保一段代码只执行一次,而不管有多少协程试图执行它。这听起来可能很简单,但它改变了并发环境中管理一次性操作的规则。…...

java nio 底层使用的是select 、poll还是epoll

在 Java NIO 中,底层使用的 I/O 多路复用机制取决于操作系统和 JDK 的实现。 🚀 Java NIO 底层使用机制概述 操作系统默认多路复用机制系统调用Linuxepollepoll_create、epoll_ctl、epoll_waitWindowsselect 或 WSAPollselect() 或 WSAPoll()macOS / B…...

Kotlin协程详解——协程取消与超时

目录 一、协程取消 1.取消协程的执行 2.使计算代码可取消 3.在finally中释放资源 4.运行不能取消的代码块 二、协程超时 异步超时与资源管理 一、协程取消 1.取消协程的执行 在一个长时间运行的应用程序中,你也许需要对你的后台协程进行细粒度的控制。 比如…...

双向链表、内核链表和gdb(20250208)

单向链表 节点 数据域 指针域(后继节点) 双向链表 相比于单项指针,双向指针存有前驱节点的地址,使链表的灵活性更高。 内核链表 在内核中 offsetof:获取结构体某个成员到结构体开头的偏移量container_of:根据结…...

全程Kali linux---CTFshow misc入门(38-50)

第三十八题: ctfshow{48b722b570c603ef58cc0b83bbf7680d} 第三十九题: 37换成1,36换成0,就得到长度为287的二进制字符串,因为不能被8整除所以,考虑每7位转换一个字符,得到flag。 ctfshow{5281…...

MySQL 8.0.41安装教程(2025年2月8号)

下载网址:https://www.mysql.com/cn/downloads/ 点击 我选择的是第二个离线安装 点击之后,选择直接下载: 下载完成双击: 我选择的是自定义安装: 右边默认已经存在我选择的8.0.41 点击红框中的,自定义安装路…...

【自学笔记】Deepseek的基础知识点总览-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Deepseek知识点总览一、Deepseek简介二、Deepseek的三大适用模式1. 基础模型(V3)2. 深度思考(R1)3. 联网搜索模式 三…...

10N10-ASEMI中低压N沟道MOS管10N10

编辑:ll 10N10-ASEMI中低压N沟道MOS管10N10 型号:10N10 品牌:ASEMI 封装:TO-252 最大漏源电流:10A 漏源击穿电压:100V 批号:最新 RDS(ON)Max:135mΩ …...

2025年2月8日(Adafruit_PCA9685详细使用)

Adafruit_PCA9685 是一个 Python 模块,用于与 PCA9685 驱动芯片进行通信,该芯片常用于控制多个伺服电机。PCA9685 是一个 16 通道的 PWM(脉宽调制)驱动器,常用于需要精确控制多个伺服电机的应用。 以下是详细的使用方…...

MR30分布式IO模块:驱动智能制造工厂的工业互联与高效控制新范式

在工业4.0与智能制造浪潮的推动下,传统制造业正经历着从“机械驱动”向“数据驱动”的深刻转型。作为工业数据连接领域的领军者,明达技术凭借其自主研发的MR30分布式IO模块,以创新的技术架构与卓越的性能表现,为全球制造企业构建了…...

Reqable使用实践

一、背景 日常开发中,难免要抓取请求数据,查看接口数据,从而更好定位问题,基于这个原因,查找了一些抓包工具,例如: HttpCanary、 Steam 、Fiddler等,不是要钱,就是只对苹…...

数据可视化基本套路总结

首先从维基百科上搬出数据可视化的概念: 数据可视化是关于数据之视觉表现形式的研究;其中,这种数据的视觉表现形式被定义为一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。 用人话简单来说,数据…...

TensorFlow域对抗训练DANN神经网络分析MNIST与Blobs数据集梯度反转层提升目标域适应能力可视化...

全文链接:https://tecdat.cn/?p39656 本文围绕基于TensorFlow实现的神经网络对抗训练域适应方法展开研究。详细介绍了梯度反转层的原理与实现,通过MNIST和Blobs等数据集进行实验,对比了不同训练方式(仅源域训练、域对抗训练等&am…...

DNS劫持和HTTPDNS

DNS 劫持是一种网络攻击手段,攻击者通过篡改域名系统(DNS)解析过程,将用户请求的域名重定向到恶意网站或其他不正确的地址。这种攻击可以用于多种目的,例如窃取用户数据、传播恶意软件或进行钓鱼攻击。 举个例子 假设…...

云原生微服务

能够认识到云原生微服务对应用程序设计的影响,描述无状态微服务,并比较单体和微服务架构。要充分利用运营模式,您需要以不同的方式思考应用程序设计。您需要考虑云原生微服务。此图像显示了一个应用程序,该应用程序被设计为小型微…...

【deepSeek R1】Ollama 更改模型安装位置 以及应用安装位置

【deepSeek R1】Ollama 更改模型安装位置 以及应用安装位置 本地版部署deepSeek R1 可以参考文章 3分钟教你搭建属于自己的本地大模型 DeepSeek R1 Ollama 是一个开源工具,旨在帮助用户轻松在本地计算机上运行、部署和管理大型语言模型(LLMs)…...

windows + visual studio 2019 使用cmake 编译构建静、动态库并调用详解

环境 windows visual studio 2019 visual studio 2019创建cmake工程 1. 静态库.lib 1.1 静态库编译生成 以下是我创建的cmake工程文件结构,只关注高亮文件夹部分 libout 存放编译生成的.lib文件libsrc 存放编译用的源代码和头文件CMakeLists.txt 此次编译CMak…...

使用Feign代替RestTemplet

Feign RestTemplet存在的问题 String url "http: //userservice/user/" order.getUserId(); User user restTemplate.getFor0bject(url, User.class);可读性差参数复杂URL难以维护 Feign声明式的Http客户端,官方地址:https://github.com…...

苹果笔记本安装jmeter

下载并安装jmeter即可,jmeter官网下载地址:Apache JMeter - Download Apache JMeter 参考以下文章:“https://blog.csdn.net/weixin_51664828/article/details/145008755”...

设备通过国标GB28181接入EasyCVR,显示在线但视频无法播放的原因排查

安防监控EasyCVR平台支持多种视频源接入,包括但不限于IP摄像头、NVR、编码器、流媒体服务器等。平台采用高效的视频流接入技术,支持大规模视频流的并发接入,确保视频流的稳定性和流畅性。 有用户反馈,项目现场使用国标GB28181接入…...

为什么我喜欢在 CSS 中使用 RegEx

说到正则(RegEx),我们第一反应往往是“在编程中用来匹配或验证字符串”,比如做表单验证。但其实在 CSS 中,也能用到与正则类似的选择器特性,为我们的样式管理带来诸多便利。别怀疑,以下就是如何…...

深度剖析 Redisson 分布式锁:原理、实现与应用实践

文章目录 写在文章开头详解Redisson 分布式锁使用和实现前置准备工作分布式锁的基本使用公平锁的使用联锁的使用读写锁基本使用常见问题Redisson和Jedis有什么区别redisson如何实现分布式锁redisson如何实现分布式锁的可重入redisson如何实现公平锁Redisson的watchdog机制是什么…...

今日AI和商界事件(2025-02-08)

今日AI领域的重大事件主要包括以下几个方面: 一、DeepSeek引发的行业震动 事件概述:DeepSeek作为近期崛起的AI模型,以其低成本、高性能的推理能力引发了广泛关注。其开源策略、独特的出身以及强大的算力表现,使得微软、英伟达等…...

Mac 基于Ollama 本地部署DeepSeek离线模型

最近节日期间最火的除了《哪吒》就是deepseek了,毕竟又让西方各个层面都瑟瑟发抖的产品。DeepSeek凭借其强大的AI能力真的是在全球多个领域展现出强大的影响力。由于受到外部势力的恶意攻击倒是deepseek官方服务不稳定,国内其他厂家的适配版本也不是很稳…...

Python截图轻量化工具

这是用Python做到截图工具,不过由于使用了ctypes调用了Windows的API, 同时访问了Windows中"C:/Windows/Cursors/"中的.cur光标样式文件, 这个工具只适用于Windows环境; 如果要提升其跨平台性的话,需要考虑替换ctypes的一些专属于W…...

怎麼在Chrome中設置代理伺服器?

出於隱私、安全或者訪問特定網路資源的需求,設置代理伺服器顯得尤為重要。本文將詳細介紹如何在Chrome流覽器中進行代理伺服器的設置。 代理伺服器是介於電腦和互聯網之間的一道“中間牆”。幫助間接訪問互聯網資源,這樣實際的IP地址被代理伺服器的IP地…...

【数据结构中链表常用的方法实现过程】

线性表 线性表包括:顺序表、链表、栈,队列等,本节我们先学习顺序表。 顺序表 利用新的数据类型——顺序表,操作数组 顺序表的本质就是对数组的增删改查。 /*** 打印顺序表中的所有元素*/Overridepublic void display() {for (int i 0; i…...

语言月赛 202308【小粉兔处理题解审核志愿者轮换】题解(AC)

》》》点我查看「视频」详解》》》 [语言月赛 202308] 小粉兔处理题解审核志愿者轮换 题目背景 又到了一周的周日,扶苏又像催命一样开始催促小粉兔处理题解审核志愿者的轮换。但是懒狗小粉兔总是把这项工作拖到第二天凌晨。 【这里有一张内部群聊图,…...

第二十二章:游戏结缘与现实的相遇

“终于结束了……” 小冷的手微微颤抖,笔在纸上划过,签下放弃 985 高校研究生入学资格的名字,那一刻,数月来压在心头沉甸甸的巨石轰然崩塌,扬起的尘埃渐渐消散。曾经,学术巅峰犹如夜空中遥不可及却又熠熠生…...

(ICLR=2025)生成的表征对齐:训练扩散Transformer比你想象的更简单

生成的表征对齐:训练扩散Transformer比你想象的更简单 paper是KAIST发表在ICLR 2025的工作 paper title:REPRESENTATION ALIGNMENT FOR GENERATION: TRAINING DIFFUSION TRANSFORMERS IS EASIER THAN YOU THINK Code:链接 ABSTRACT 最近的研究表明&…...

保姆级教程--DeepSeek部署

以DeepSeek-R1或其他类似模型为例,涵盖环境配置、代码部署和运行测试的全流程: 准备工作 1. 注册 Cloud Studio - 访问 [Cloud Studio 官网](https://cloudstudio.net/),使用腾讯云账号登录。 - 完成实名认证(如需长期使用…...

[css] 黑白主题切换

link动态引入 类名切换 css滤镜 var 类名切换 v-bind css预处理器mixin类名切换 【前端知识分享】CSS主题切换方案...

C语言练习题

文章目录 1. 递归实现将字符串str中的元素逆序2. 对数组arr进行冒泡排序(升序)3. 对数组从下标low到下标hihg区间内的元素进行快速排序(升序)4. 在数组中利用二分查找(折半查找)目标关键字5. 求n的阶乘6. 判断year是否为闰年7. 求…...

Lambda 表达式

一、Lambda 表达式简介 Lambda 表达式是一种简洁的函数式编程方式,用于实现只有一个方法的接口(例如函数式接口)。 基本语法 (parameters) -> expression (parameters) -> { statements; } 参数:可以有零个或多个参数。…...

Vue 鼠标事件合集,关于鼠标右键的处理方法(改写鼠标右键方法、自定义鼠标右键)

鼠标事件使用 mousedown"canvasDown($event)"按下事件合集 click 点击某个对象时触发 mousedown 鼠标按钮被按下时触发 mouseup 鼠标按钮被松开时触发 mouseleave 当鼠标指针移出元素时触发 dblclick 双击时触发 mousemove 鼠标移动时触发&#xff0c…...

go语言中的接口

接口简介 现实生活中的接口 现实生活中手机、相机、U 盘都可以和电脑的 USB 接口建立连接。我们不需要关注 usb 卡槽大小是否一样,因为所有的 USB 接口都是按照统一的标准来设计的。 Golang 中的接口(interface) Golang 中的接口是一种抽象…...

如何在Android Studio中开发一个简单的Android应用?

Android Studio是开发Android应用的官方集成开发环境(IDE),它提供了许多强大的功能,使得开发者能够高效地创建Android应用。如果你是Android开发的初学者,本文将引导你如何在Android Studio中开发一个简单的Android应用…...

启明星辰发布MAF大模型应用防火墙产品,提升DeepSeek类企业用户安全

2月7日,启明星辰面向DeepSeek等企业级大模型业务服务者提供的安全防护产品——天清MAF(Model Application Firewall)大模型应用防火墙产品正式发布。 一个新赛道将被开启…… DeepSeek的低成本引爆赛道规模 随着DeepSeek成为当前最热的现象级…...

开箱即用的.NET MAUI组件库 V-Control 发布了!

之前写过挺多的MAUI Sample,其中有很多代码可以打包成组件,当组件完善到一定程度,我会把控件封装起来放到控件库中。 今天,在这个仓库建立一年零八个月后,我觉得可以考虑将其作为开源库发布。 有很多网友在观望.NET …...

android skia渲染介绍

Android AOSP 的渲染系统主要使用 Skia 图形库。Skia 是一个开源的 2D 图形库,它被广泛应用于 Android 的图形渲染中,负责绘制 UI 元素、文本、图像以及其他 2D 图形内容。 以下是 Android AOSP 中 Skia 的作用和它在渲染系统中的位置: 1. 什…...