4.MongoDB中16个常用CURD

基本的CURD
作为一个非专业的DBA,我们只需要会一些基本的curd就行,专业的内容还是需要专业的人去干的。CRUD 也就是增删改查,这是数据库最基本的功能,查询还支持全文检索,GEO 地理位置查询等。
01创建库
无需单独创建,直接use进去
02创建表
无需单独创建,直接插入数据
03插入记录
// 单个文档插入到集合中
db.collection.insertOne()
// 多个文档插入到集合中
db.collection.insertMany()// demo
db.collection.insertOne({"id":1,"name":"张三"})
db.collection.insertMany([{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])
04更新记录
// 更新单条
db.collection.updateOne()
// 更新多条
db.collection.updateMany()// demo
update user set name = "李四" where id = 1;
db.user.updateMany({"id":1}, {$set:{"name":"李四"}})
05删除记录
// 删除单条文档
db.collection.deleteOne()
// 删除多条文档
db.collection.deleteMany()// demo
db.user.deleteMany({"id":1})
06删除库
// 先use
db.dropDatabase()
07删除表
db.collection.drop()
08查询数据
db.collection.find( )
db.collection.findOne()// demo
select * from user where name = "李四";
db.user.find({"name":"李四"})// < 查询
select * from user where id < 2;
db.user.find({id:{$lt:2}})// 比较查询
db.collection.find({ "field" : { $gt: value }}) // 大于: field > value
db.collection.find({ "field" : { $lt: value }}) // 小于: field < value
db.collection.find({ "field" : { $gte: value }}) // 大于等于: field >= value
db.collection.find({ "field" : { $lte: value }}) // 小于等于: field <= value
db.collection.find({ "field" : { $ne: value }}) // 不等于: field != value// 包含查询
db.user.find({id:{$in:[1,2]}}) // id in(1,2)
db.user.find({id:{$nin:[3]}}) // id != 3// or 查询
select * from user where id = 1 or name ='李四';
db.user.find($or:[{id:1},{name:'李四'}])// 格式化结果
db.user.find().pretty()
09模糊查询
select * from user where name like "%李%";
db.user.find({name:/李/})select * from user where name like "ste%";
db.user.find({name:/^李/})
10分页查询
const pageNumber = 2; // 第几页
const pageSize = 10; // 每页多少条记录
// mysql
SELECT * FROM user LIMIT pageSize OFFSET (pageNumber - 1) * pageSize;
// mongodb
db.user.find({}).skip((pageNumber - 1) * pageSize).limit(pageSize);
注意:skip()、limilt()、 sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit(),和命令编写顺序无关。
11排序
// 正排序查询
select * from user order by id;
db.user.find().sort({id:1})//逆排序查询
select * from user order by id desc;
db.user.find().sort({id:-1})
12去重
select distinct(name) from user;
db.user.distinct('name')
13获取表记录数
db.user.count()
db.user.find({id:1}).count()
14取存储路径
explain select * from tname where id=3;
db.tname.find({id=3}).explain()
15创建索引
//mysql
CREATE INDEX idx_name ON user (name);
ALTER TABLE user ADD INDEX idx_name (name);// mongodb
db.user.createIndex({ name: 1 },{ unique: true })
上面的例子中,{ name: 1 } 定义了索引的字段和排序方向(1 表示升序,-1 表示降序)。{ unique: true } 选项指定了这是一个唯一索引。
16查看索引
db.user.getIndexes()
相关文章:
4.MongoDB中16个常用CURD
基本的CURD 作为一个非专业的DBA,我们只需要会一些基本的curd就行,专业的内容还是需要专业的人去干的。CRUD 也就是增删改查,这是数据库最基本的功能,查询还支持全文检索,GEO 地理位置查询等。 01创建库 无需单独创…...
Tomcat数据源笔记
Tomcat数据源笔记 连接池的概念 连接池是一种由容器提供的机制,用于管理数据库连接对象的集合。连接池的主要作用是在应用程序需要与数据库进行交互时,提供可复用的连接对象,从而减少每次建立数据库连接的开销。 连接池的工作原理 连接池的…...
Spring-Kafka笔记整理
引入依赖<dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId> </dependency>配置application.propertiesspring.kafka.bootstrap-servers192.168.99.51:9092编写kafka的配置类Configuration …...
已解决org.apache.hadoop.hdfs.protocol.QuotaExceededException异常的正确解决方法,亲测有效!!!
已解决org.apache.hadoop.hdfs.protocol.QuotaExceededException异常的正确解决方法,亲测有效!!! 目录 问题分析 报错原因 解决思路 解决方法 总结 博主v:XiaoMing_Java 问题分析 在使用Hadoop分布式文件系统&a…...
GitHub打不开的解决方案(超简单)
在国内,github官网经常面临打不开或访问极慢的问题,不挂VPN(梯子,飞机,魔法)使用体验极差,那有什么好办法解决github官网访问不了的问题?今天小布教你几招轻松访问github官网。 git…...
Unity开发一个FPS游戏之二
在之前的文章中,我介绍了如何开发一个FPS游戏,添加一个第一人称的主角,并设置武器。现在我将继续完善这个游戏,打算添加敌人,实现其智能寻找玩家并进行对抗。完成的效果如下: fps_enemy_demo 下载资源 首先是设计敌人,我们可以在网上找到一些好的免费素材,例如在Unity…...
STM32F103 CubeMX 使用USB生成鼠标设备
STM32F103 CubeMX 使用USB生成鼠标设备 1 配置cubeMX1.1配置外部晶振,配置debug口1.2 配置USB1.3 配置芯片的时钟1.4 生成工程 2. 编写代码2.1 添加申明2.2 main函数代码 1 配置cubeMX 1.1配置外部晶振,配置debug口 1.2 配置USB 1.3 配置芯片的时钟 需…...
HJXH-E1/U静态信号继电器 面板安装 辅助电源220VDC 启动电压220VDC JOSEF约瑟
HJXH系列静态信号继电器 HJXH-61/U静态信号继电器; HJXH-61/I静态信号继电器; HJXH-62/U静态信号继电器; HJXH-62/I静态信号继电器; HJXH-E1/U静态信号继电器; HJXH-E1/I静态信号继电器; HJXH-E2/U静态信号…...
SpringBoot3下Kafka分组均衡消费实现
首先添加maven依赖: <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.8.11</version><exclusions><!--此处一定要排除kafka-clients,然…...
鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:GridItem)
网格容器中单项内容容器。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。仅支持作为Grid组件的子组件使用。 子组件 可以包含单个子组件。 接口 GridItem GridItem(value?: GridItemOptions)…...
Qt 使用RAW INPUT获取HID触摸屏,笔设备,鼠标的原始数据,最低受支持的客户端:Windows XP [仅限桌面应用]
在开发绘图应用程序时,经常会需要读取笔设备的数据,通过对笔数据的解析,来判断笔的坐标,粗细。如果仅仅只是读取鼠标的坐标,就需要人为在应用程序端去修改笔的粗细,并且使用体验不好,如果可以实…...
easyexcel导出excel文件到s3服务器
导出excel文件是开发中常见的需求 常见的做法一般是直接通过请求接口响应对象HttpServletResponse把文件输出 我们可以使用原生的poi工具类操作.也可以使用easypoi.easyexcel等基于poi二次封装的工具处理 下面是代码 /*** 导出列表** param request* param response*/Overri…...
xss.haozi.me靶场“0x0B-0x12”通关教程
君衍. 一、0x0B 实体编码绕过二、0x0C script绕过三、0x0D 注释绕过四、0X0E ſ符号绕过五、0x0F 编码解码六、0x10 直接执行七、0x11 闭合绕过八、0x12 闭合绕过 XSS-Labs靶场“1-5”关通关教程 XSS-Labs靶场“6-10”关通关教程 Appcms存储型XSS漏洞复现 XSS-Labs靶场“11-13、…...
linux--redhat系统Yum源配置
1)说明 redhat yum命令使用报错解决-重新配置yum源 解决--更改yum源 2)更改yum源 (1)进入源目录 cd /etc/yum.repos.d/ (2)备份 redhat 默认源 mv redhat.repo redhat.repo-bak (3)…...
el-Switch 开关二次确认
前言 最近在做毕设,有个需求是点击按钮控制用户的状态是否禁用,就看到element有个switch组件可以改造一下,就上网看了一下,结果为了这个效果忙活了很久。。。所以说记录一下,让大家少踩坑。 前置条件 先看完我的需求再…...
(二)丶RabbitMQ的六大核心
一丶什么是MQ Message Queue(消息队列)简称MQ,是一种应用程序对应用程序的消息通信机制。在MQ中,消息以队列形式存储,以便于异步传输,在MQ中,发布者(生产者)将消息放入队列ÿ…...
微信小程序实现上下手势滑动切换
效果图 思路 实现一个微信小程序的复合滚动页面,主要通过Swiper组件实现垂直方向的轮播功能,每个轮播项内部使用Scroll-View组件来展示可垂直滚动的长内容,如图片和文本。 代码 <!-- wxml --> <view class"swiper-container…...
详解命令docker run -d --name container_name -e TZ=Asia/Shanghai your_image
docker run 是Docker的主要命令,用于从镜像启动一个新的容器。下面详细解释并举例说明 -d, --name, -e TZ 参数的用法: -d 或 --detach: 这个标志告诉Docker以守护进程(后台)模式运行容器。这意味着当你执行 docker ru…...
javaEE7
1. <% page pageEncoding"UTF-8"%><% page import"java.io.*"%> <% page import"java.util.*"%> <% page import"java.math.*"%> <html> <head><title>网站计数器</title></head&…...
int与integer的区别
int和integer都是用来表示整数的数据类型,但有一些细微的区别。 int是Java中的基本数据类型,它可以存储整数值。int类型在内存中占4个字节,范围为-2,147,483,648到2,147,483,647。int类型使用最频繁,因为它的存储空间较小&#x…...
别再只会用‘Let‘s think step by step’了:DeepSeek-R1原生思维链的实战调优指南
别再只会用‘Let‘s think step by step’了:DeepSeek-R1原生思维链的实战调优指南 当你在深夜调试一个复杂的代码生成任务时,模型突然输出了一个完全不符合预期的结果。你盯着屏幕,反复检查自己的prompt——明明已经加上了经典的"Lets …...
从一次RDP爆破到全网挖矿:复盘Windows Server 3389端口的安全加固与监控策略
Windows Server 3389端口安全防御体系:从RDP爆破到挖矿攻击的全链路防护 最近处理了一起典型的服务器入侵事件:攻击者通过RDP暴力破解获取管理员权限后,在服务器上部署了挖矿程序。这种攻击模式看似简单,却暴露出许多企业在Windo…...
数据处理与统计分析----沙箱
命令行操作沙箱...
2026知识付费SaaS避坑指南:数据安全与系统稳定性实测,创客匠人为何值得托付?
在知识付费行业,大多数选型对比只关注“前台功能”:能不能卖课、能不能直播、有没有拼团。但真正决定生意生死的,往往是看不见的“底层能力”——数据是否安全?系统是否稳定?学员资产能否真正归你所有?过去…...
如何用Python快速开发Android应用:Python for Android完整指南
如何用Python快速开发Android应用:Python for Android完整指南 【免费下载链接】python-for-android Turn your Python application into an Android APK 项目地址: https://gitcode.com/gh_mirrors/py/python-for-android 想要将Python技能扩展到移动开发领…...
1989-2017 年泛北极和北方地区冬季原位土壤 CO2 通量的综合分析
Synthesis of Winter In Situ Soil CO2 Flux in pan-Arctic and Boreal Regions, 1989-2017 简介 本数据集综合了来自泛北极和北方多年冻土区多个地点的冬季(9 月至次年 4 月)原位土壤 CO₂通量测量数据。这些原位数据来自 1989 年至 2017 年间开展的 …...
oklog架构深度解析:如何实现无协调的分布式日志存储
oklog架构深度解析:如何实现无协调的分布式日志存储 【免费下载链接】oklog A distributed and cordination-free log management system 项目地址: https://gitcode.com/gh_mirrors/ok/oklog 在当今云原生和微服务架构盛行的时代,分布式日志管理…...
关于爬虫源影视资源设置
1.首先目前的omnibox的版本已更新到2.0.3版本,之前的配置会丢失,原本的资源都会无法使用,这里以新版本增加数据源,看完以下教程再下载脚本。 2.添加爬虫源,这里以猫眼资源为主测试: 增加脚本之后,点击保存即可! 复制以下脚本,修复改site_api即可,一般公用的资源都是正…...
[LaTeX] 使用minipage与subfigure实现高效多图排版(附代码型图片处理技巧)
1. 为什么需要minipage和subfigure? 写论文或者技术文档时,经常遇到需要把多张图片并排展示的情况。比如对比实验效果图、不同角度的产品展示、代码片段对比等。传统做法是每张图单独插入,但这样会导致图片间距不一致、对齐困难,最…...
JavaScript高效PPTX文档处理方案:js-pptx深度解析与实战指南
JavaScript高效PPTX文档处理方案:js-pptx深度解析与实战指南 【免费下载链接】js-pptx Pure Javascript reader/writer for PowerPoint 项目地址: https://gitcode.com/gh_mirrors/js/js-pptx 在当今数字化办公环境中,PowerPoint演示文稿的自动化…...
