MongoDB 的增、查、改、删
Monogo使用
增
- 单条增加
db.member.insertOne({"name":"张三","age":18,"create":new Date()})
db.member.insert({"name":"李四1","age":18,"create":new Date()})
db.member.insertOne({"_id":1,"name":"张三","age":18,"create":new Date()})
- 多条增加
db.member.insertMany([{"_id":2,"name":"李四","age":18,"create":new Date()},{"_id":3,"name":"王五","age":18,"create":new Date()}])
查询
这个查询,每一块都是一个个复杂的json串组合而成
- 查询age=18
# 缩写
db.member.find({age:18});
# 完整写法
db.member.find({age: {$eq: 18}
});
- 查询 _id>2 并且 age =18
# 缩写
db.member.find({_id :{$gt: 2}, age:18});
# 完整写法
db.member.find({$and: [{_id: {$gt: 2}}, {age: {$eq: 18}}]
})
- 排序
- -1 是降序
- 1 是升序
db.member.find({_id :{$gt: 2}}).sort({_id:-1});
- 分页
- skip:跳过指定记录数
- limit:返回结果数量
# 跳过第一条后,返回3条数据
db.member.find().skip(1).limit(5);
#假如有数据1,2,3,4,5
#返回 2,3,4
- 返回指定字段
- 0代表不显示
- 1代表显示
** 注意:_id默认是显示的,只有_id不显示是设置0,其他字段都不可以设置0 **
格式:find({查询条件,可以空},{显示的字段:1})
db.member.find({},{age:1})
- 查询操作符
| 操作符 | 描述 | 对比mysql |
|–|–|–|
|$eq| 等值比较,find({_id :{ KaTeX parse error: Expected 'EOF', got '}' at position 6: eq: 1}̲}) 等价于 find({_i…ne| 不等于指定值,find({_id :{ KaTeX parse error: Expected 'EOF', got '}' at position 6: ne: 1}̲}) |id != 1 或 i…in| 数组中包含 ,find( { _id :{ KaTeX parse error: Expected 'EOF', got '}' at position 13: in: [ 1,2 ] }̲ } ) |id in ( 1…nin| 数组中不包含,find( { _id :{ KaTeX parse error: Expected 'EOF', got '}' at position 14: nin: [ 1,2 ] }̲ } ) |id not in…gt| 大于指定值,find({_id :{KaTeX parse error: Expected 'EOF', got '}' at position 6: gt: 1}̲})| id > 1| |get| 大于等于指定值,find({_id :{KaTeX parse error: Expected 'EOF', got '}' at position 7: gte: 1}̲}) |id >= 1| |lt| 小于指定值,find({_id :{KaTeX parse error: Expected 'EOF', got '}' at position 6: lt: 1}̲}) |id < 1| |lte| 小于等于指定值,find({_id :{KaTeX parse error: Expected 'EOF', got '}' at position 7: lte: 1}̲})| id <= 1| |and| 与(并且)查询,find({$and:[ { _id:{ $gt:1} },{ _id:{ KaTeX parse error: Expected 'EOF', got '}' at position 5: lt:4}̲ } ]})| id > 1 …or| 或查询,find({KaTeX parse error: Expected 'EOF', got '}' at position 27: …1 },{ _id: 3} ]}̲) |id = 1 or id…not| 非查询,非小于3的数据 find({_id :{$not :{ KaTeX parse error: Expected 'EOF', got '}' at position 7: lt: 3 }̲ } })| id >= 3|…nor| 即非查询,find( { KaTeX parse error: Expected 'EOF', got '}' at position 44: …}, { _id: 3 }] }̲ )| (id != 1 an…all| 同时包含,查询tag同时包含3和9的数据,tag是一个数组,find({tag:{KaTeX parse error: Expected 'EOF', got '}' at position 10: all:[3,9]}̲}) | | |elemMatch | 有一个元素匹配即可,find({job:{KaTeX parse error: Expected 'EOF', got '}' at position 44: …mpany:‘xiaomi’}}̲}) || |size| 匹配数组大小,find({tag:{KaTeX parse error: Expected 'EOF', got '}' at position 7: size:3}̲}) || |slice| 返回数组中第几个元素,find({job:{KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 43: …ompany:‘baidu’}}̲},{name:1,job:{slice:1}})||
|KaTeX parse error: Expected '}', got 'EOF' at end of input: …文档,find({name:{exists:true}}) | |
修改
格式 : db.集合.update(query, update, options)
- query:更新的查询条件
- update:要更新的内容
- options:更新的选项
- 更新单个文档
更新_id等于3的年龄
db.member.update({_id:3},{$set:{age:11}})
db.member.updateOne({_id:3},{$set:{age:11}})
- multi更新多个文档
**更新多个文档需要设置multi选项 :true,默认情况下mongo update命令在更新第一个文档后就返回。 **
db.member.update({age:19},{$set:{ name:‘zhang1’}},{‘multi’:true});
#要不你换成这样子写,就可以更新多条
db.member.updateMany({age:19},{$set:{ name:‘zhang33’}})
- upsert更新的字段不存在则插入
** upsert选项为true:如果更新文档不存在则创建文档,如果文档存在字段不存在则创建字段,都存在则更新**
db.member.update({_id:3}, { $set:{ address :‘北京’} } ,{upsert:true})
- indAndModify查询和修改
** 查询并修改指定值,注意先返回结果,后更新,返回的结果是旧数据 **
db.member.findAndModify({query:{name:‘张1’} , update:{ $set:{ ‘age’:18 } } })
- 查询并修改指定值,并返回新值
db.member.findAndModify({query:{name:‘张1’} , update:{ $set:{ ‘age’:18 } } })
| 操作符 | 格式 | 描述 |
|---|---|---|
| $set | { $set : { filed : value} } | 指定一个键,并更新值 |
| $unset | { $unset : { filed : 1} } | 删除一个键 |
| $inc | { $inc : { filed : value} } | 对数值类型进行增减 |
| $push | { $push : { filed : value} } | 将数值追加到数组中,若数组不存在则会进行初始化 |
| $pushAll | { $pushAll : { filed : value_array} } | 追加多个值到数组内 |
| $pull | { $pull : { filed : value} } | 从数组中删除指定元素 |
| $addToSet | { $addToSet : { filed : value} } | 添加元素到数组中,具有排重功能 |
| $pop | { $pop : { filed : 1} } | 删除数组第一个或最后一个 |
| $rename | { $rename : { old_filed_name : new_filed_name } } | 修改地段名称 |
| $bit | { $bit : { filed : {and :5} } } | 位操作,integer类型 |
删除
- 删除单个文档
db.member.deleteOne({_id:2})
- remove命令会删除匹配条件的全部文档,删除单个文档,可以根据_id 或者唯一值删除。
db.member.remove({name:‘张1’})
- 如果希望明确删除一个文档,需要指定justOne参数
db.member.remove({age:19},true)
- 删除多个文档
db.member.remove({age:19})
或
db.member.deleteMany({age:19})
- 删除全部文档
db.member.remove({})
或
db.member.deleteMany({})
或
db.member.drop()
# remove与deleteMany是对查询范围内的数据逐条删除,drop是删除整个集合(包括全部索引)drop更高效
- 删除并返回删除的数据findOneAndDelete
remove和deleteMany只能按照默认顺序删除,并返回确认信息。findOneAndDelete可以指定顺序删除文档和返回删除的内容
删除并返回db.member.findOneAndDelete({age:18})删除指定排序的数据db.member.findOneAndDelete({age:18},{sort:{_id:-1}})
相关文章:
MongoDB 的增、查、改、删
Monogo使用 增 单条增加 db.member.insertOne({"name":"张三","age":18,"create":new Date()}) db.member.insert({"name":"李四1","age":18,"create":new Date()}) db.member.insertOne(…...
mysql常用操作命令
mysql常用操作命令 mysql:单进程多线程模型,一个SQL语句无法利用多个cpu core 一:基本命令 0.查看当前连接数 show global status like Thread$; show variables like "%timeout%"; show variables like "log_%";1.查看当前连接状态 show processlist…...
数学建模常见模型汇总
优化问题 线性规划、半定规划、几何规划、非线性规划、整数规划、多目标规划(分层序列法)、动态规划、存贮论、代理模型、响应面分析法、列生成算法 预测模型 微分方程、小波分析、回归分析、灰色预测、马尔可夫预测、时间序列分析(AR MAMA.RMA ARTMA LSTM神经网络)、混沌模…...
C#使用LINQ查询操作符实例代码(二)
目录 六、连表操作符 1、内连接2、左外连接(DefaultIfEmpty)3、组连接七、集合操作 八、分区操作符 1、Take():2、TakeWhile():3、Skip():4、SkipWhile():九、聚合操作符 1、Count: 返回集合项数。 2、LongCount&…...
jenkinsfile小试牛刀
序 本文主要演示一下如何用jenkinsfile来编译java服务 安装jenkins 这里使用docker来安装jenkins docker run --name jenkins-docker \ --volume $HOME/jenkins_home:/var/jenkins_home \ -p 8080:8080 jenkins/jenkins:2.416之后访问http://${yourip}:8080,然后…...
C++ xmake构建
文章目录 一、xmake.lua二、xmake常用语句 一、xmake.lua --xmake.luaset_project("XXX")add_rules("mode.debug", "mode.release") set_config("arch", "x64")if is_plat("windows") then -- the release modei…...
推荐带500创作模型的付费创作V2.1.0独立版系统源码
ChatGPT 付费创作系统 V2.1.0 提供最新的对应版本小程序端,上一版本增加了 PC 端绘画功能, 绘画功能采用其他绘画接口 – 意间 AI,本版新增了百度文心一言接口。 后台一些小细节的优化及一些小 BUG 的处理,前端进行了些小细节优…...
wps图表怎么改横纵坐标,MLP 多层感知器和CNN卷积神经网络区别
目录 wps表格横纵坐标轴怎么设置? MLP (Multilayer Perceptron) 多层感知器 CNN (Convolutional Neural Network) 卷积神经网络 多层感知器MLP,全连接网络,DNN三者的关系 wps表格横纵坐标轴怎么设置? 1、打开表格点击图的右侧…...
rdb和aof
RDB持久化:原理是将Redis在内存中的数据库记录定时dump到磁盘上的RDB持久化AOF持久化:原理是将Redis的操作日志以追加的方式写入文件 rdb: 开启方式:客户端可以通过向Redis服务器发送save或bgsave命令让服务器生成rdb文件&#…...
TCP网络通信编程之网络上传文件
【图片】 【思路解析】 【客户端代码】 import java.io.*; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException;/*** ProjectName: Study* FileName: TCPFileUploadClient* author:HWJ* Data: 2023/7/29 18:44*/ public class TCPFil…...
Java中对Redis的常用操作
目录 数据类型五种常用数据类型介绍各种数据类型特点 常用命令字符串操作命令哈希操作命令列表操作命令集合操作命令有序集合操作命令通用命令 在Java中操作RedisRedis的Java客户端Spring Data Redis使用方式介绍环境搭建配置Redis数据源编写配置类,创建RedisTempla…...
链路追踪设计
...
Golang之路---02 基础语法——常量 (包括特殊常量iota)
常量 //显式类型定义const a string "test" //隐式类型定义const b 20 //多个常量定义 const(c "test2"d 2.3e 27)iota iota是Golang语言的常量计数器,只能在常量表达式中使用 iota在const关键字出现时将被重置为0,const中每新…...
Pytest学习教程_装饰器(二)
前言 pytest装饰器是在使用 pytest 测试框架时用于扩展测试功能的特殊注解或修饰符。使用装饰器可以为测试函数提供额外的功能或行为。 以下是 pytest 装饰器的一些常见用法和用途: 装饰器作用pytest.fixture用于定义测试用例的前置条件和后置操作。可以创建可重…...
redis的如何使用
1、redis的使用 1.1windows安装 安装包下载地址:Releases dmajkic/redis GitHub 1.2 redis中常使用的几个文件 1.3 redis中运行 双击redis-server,既可以运行。 1.4使用redis客户单来连接redis 1.5redis的常用指标 redis-serve 服务端,端口号&am…...
MyBatis(二)
文章目录 一.MyBatis的模式开发1.1 定义数据表和实体类1.2 配置数据源和MyBatis1.3 编写Mapper接口和增加xxxMapper.xml1.4 测试我们功能的是否实现. 二. Mybatis的增删查改操作2.1 单表查询2.2 多表查询三.动态SQL的实现3.1 什么是动态SQL3.2 动态SQL的使用if标签的使用trim标…...
【【51单片机AD转换模块】】
代码是简单的,板子是坏的,电阻是识别不出来的 main.c #include <REGX52.H> #include "delay.h" #include "LCD1602.h" #include "XPT2046.h"unsigned int ADValue;void main(void) {LCD_Init();LCD_ShowString(1,1…...
Longest Divisors Interval(cf)
题意:给定一个正整数n,求正整数的区间[l,r]的最大大小,使得对于区间中的每个i(即l≤i≤r),n是i的倍数。给定两个整数l≤r,区间[l,r]的大小为r−l1(即…...
配置文件、request对象请求方法、Django连接MySQL、Django中的ORM、ORM增删改查字段、ORM增删改查数据
一、配置文件的介绍 1.注册应用的 INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,app01.apps.App01Config, ]################中间件###############…...
CTF学习路线指南(附刷题练习网址)
前言: PWN,Reverse:偏重对汇编,逆向的理解; Gypto:偏重对数学,算法的深入学习; Web:偏重对技巧沉淀,快速搜索能力的挑战; Mic:则更为复杂&…...
Wan2.2-I2V-A14B镜像安全加固:禁用root登录+API密钥认证+访问白名单
Wan2.2-I2V-A14B镜像安全加固:禁用root登录API密钥认证访问白名单 1. 镜像安全加固的必要性 Wan2.2-I2V-A14B作为高性能文生视频模型,其私有部署镜像承载着重要的AI推理任务。在开放网络环境中运行时,系统安全防护不容忽视。未经加固的镜像…...
终极指南:使用wger打造完全自托管的健身与营养追踪系统
终极指南:使用wger打造完全自托管的健身与营养追踪系统 【免费下载链接】wger Self hosted FLOSS fitness/workout, nutrition and weight tracker 项目地址: https://gitcode.com/GitHub_Trending/wg/wger wger是一个开源的、功能全面的健身与营养管理平台&…...
Python MCP服务可观测性革命:OpenTelemetry+Prometheus+Grafana三件套零代码接入方案(附完整YAML模板)
第一章:Python MCP服务可观测性革命概述在微服务架构持续演进的今天,Python构建的MCP(Metrics, Context, and Propagation)服务正成为可观测性实践的关键载体。传统日志聚合与单点监控已难以应对跨服务调用链中上下文丢失、指标语…...
2026年,AI到底杀死了哪些行业?又催生了哪些新机会?
AI对传统行业的冲击2026年,AI的快速发展可能导致部分传统行业被大幅削弱甚至消失:客服行业:智能客服系统(如ChatGPT、语音AI)已能高效处理大部分标准化咨询,人工客服需求锐减。数据录入与基础会计ÿ…...
突破网盘下载瓶颈:技术工具革新文件获取效率
突破网盘下载瓶颈:技术工具革新文件获取效率 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅…...
Windows热键冲突终结者:Hotkey Detective让键盘操作回归掌控
Windows热键冲突终结者:Hotkey Detective让键盘操作回归掌控 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 当…...
编译期类型自省如何拯救百万行遗留代码?C++27静态反射工业改造全链路拆解,从PoC到A/B灰度发布
第一章:编译期类型自省如何拯救百万行遗留代码?C27静态反射工业改造全链路拆解,从PoC到A/B灰度发布在某金融核心交易系统中,127万行C11遗留代码长期依赖宏字符串硬编码实现序列化与配置绑定,导致每次协议变更需人工同步…...
终极MCP协议指南:从协议原理到Awesome MCP Servers完整实践
终极MCP协议指南:从协议原理到Awesome MCP Servers完整实践 【免费下载链接】awesome-mcp-servers A collection of MCP servers. 项目地址: https://gitcode.com/GitHub_Trending/aweso/awesome-mcp-servers MCP(Model Context Protocol…...
Phi-3-mini-4k-instruct-gguf惊艳效果:中文长难句拆解+逻辑关系标注+通俗转述三重能力展示
Phi-3-mini-4k-instruct-gguf惊艳效果:中文长难句拆解逻辑关系标注通俗转述三重能力展示 1. 模型能力概览 Phi-3-mini-4k-instruct-gguf作为微软Phi-3系列的轻量级文本生成模型,在中文处理方面展现出令人惊喜的能力。这个开箱即用的模型特别擅长处理三…...
点集相等概念表明流传2300多年使世人深信不疑的直线公理将无穷多各异直线误为同一线
黄小宁 “科学”共识:在初等数学领域绝对不可能有颠覆性创新,谁若说“已非常成熟”的初等数学存在重大错误那就说明谁有“自大狂型精神病”。 “实数集”R可几何化为R轴。与x∈R相异(等)的实数均可表为yxδ(增量δ可…...
