MongoDB文档插入
文章目录
- MongoDB文档插入
- 对比增删改查
- 文档插入
- MongoDB写安全机制
- 非确认式写入
- MongoDB文档查询
- 参数说明
- 查询操作符
- 比较查询操作符
- 逻辑查询操作符
- 元素查询操作符
- 数组查询操作符
- 模糊查询
- 区别:
- $regex操作符中的option选项
- MongoDB游标介绍
- 游标函数
- 手动迭代游标示例
- 游标介绍
MongoDB文档插入
对比增删改查
文档插入
- 参数说明:
- document:要写入的文档。
- writeConcern:可选,写入策略,默认为 1,即要求确认写操作,0 是不要求。
- ordered:可选,指定是否按顺序写入,默认 true,按顺序写入
- db.collection.insertOne() 用于向集合插入一个新文档
- 语法格式如下:db.collection.insertOne(,{writeConcern:} )
- db.collection.insertMany() 用于向集合插入多个文档
- 语法格式如下:db.collection.insertMany([<document 1>,<document 2>, … ],{writeConcern:,ordered: })
MongoDB写安全机制
- 写入安全机制(Write Concern)是一种由客户端设置的,用于控制写入安全级别的机制,通过使用写入安全机制可以提高数据的可靠性。
- MongoDB提供了四种写入级别,分别是:
- 非确认式写入
- 确认式写入
- 日志写入
- 复制集确认式写入
非确认式写入
写操作不会返回任何结果,对于写操作,在没有得到服务器写入确认的情况下就立即返回,所以无法知道是否写入成功。
MongoDB文档查询
参数说明
- query :可选,使用查询操作符指定查询条件
- projection :可选,是否返回该字段,0代表不返回,1代表返回,语法格式:{field:0}或{field:1},查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。db.student.find({“age”:{$lt:22}},{“_id”:0, “name”:1})
- options:可选,指定查询的其他选项,这些选项能够改变查询的行为和返回的结果。
- limit指定查询返回结果数量的上限skip:跳过一定数据量的结果,设置第一条返回文档的偏移量
- sort:对查询结果进行排序
- find参数为空或者查询条件为空文档时,会返回集合中所有的文档。例如:db.student.find()或db.student.find({})
- 如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:db.col.find().pretty()
- findOne()只会返回第一条数据
查询操作符
比较查询操作符
逻辑查询操作符
元素查询操作符
数组查询操作符
- 查询数组中的元素(普通元素),包含两种情况:
- 与位置无关,查询数组中含有某个值的元素,例如:db.student.find({score: 60})
- 与位置有关,按照指定的数组索引查询数组元素的值(使用点号操作符) 例如:db.student.find({‘scores.2’: 60})
- 数组元素是文档时,包含两种情况:
- 与位置无关,查询数组中满足条件的子文档元素,例如:db.student.find({“score.成绩”:80})
- 与位置有关,按照指定的数组索引查询数组子文档,例如:db.student.find({“scores.2.成绩”:95})
模糊查询
regex操作符
{:{$ regex:/pattern/,$ options:‘’}}
{:{$ regex:‘pattern’,$ options:‘’}}
{:{$ regex:/pattern/}}
正则表达式对象
{: /pattern/}
区别:
- 在$ in操作符中只能使用正则表达式对象
例如:{name:{$in:[/joe/i,/jack/}} - 在使用隐式的$ and操作符中,只能使用$ regex
例如:{name:{$regex:/^jo/i, $nin:[‘john’]}} - 当option选项中包含x或s选项时,只能使用$ regex
例如:{name:{$ regex:/m.*line/,$options:“si”}}
$regex操作符中的option选项
可以改变正则匹配的默认行为,它包括i, m, x以及s四个选项,其含义如下:
- i 忽略大小写 {{$regex/pattern/i}}
- 设置i选项后,模式中的字母会进行大小写不敏感匹配。
- m 多行匹配模式,{{$ regex/pattern/,$options:'m’}
- m选项会更改^和$元字符的默认行为,分别使用与行的开头和结尾匹配,而不是与输入字符串的开头和结尾匹配。
- x 忽略非转义的空白字符:{$ regex:/pattern/,$options:'x‘}
- 设置x选项后,正则表达式中的非转义的空白字符将被忽略,同时#被解释为注释的开头 注:只能显式位于option选项中。
- s 单行匹配模式{:{$ regex:/pattern/,$options:'s‘}
- 设置s选项后,会改变模式中的点号(.)元字符的默认行为,它会匹配所有字符,包括换行符(\n),只能显式位于option选项中。
- i,m,x,s可以组合使用例如:{name:{ r e g e x : / j ∗ k / , regex:/j*k/, regex:/j∗k/,options:“si”}}
- 在设置索引的字段上进行正则匹配可以提高查询速度,而且当正则表达式使用的是前缀表达式时,查询速度会进一步提高 例如:{name:{$regex: /^joe/}
MongoDB游标介绍
用find函数进行查询时,MongoDB并不是一次返回结果集中的所有文档,而是以多条文档的形式分批来返回查询结果,返回的文档会缓存到内存中。
游标函数
手动迭代游标示例
var myCursor = db.users.find( { type: 2 } );
while (myCursor.hasNext()) {printjson(myCursor.next());
}
或var myCursor = db.users.find( { type: 2 } );myCursor.forEach(printjson);
游标介绍
- 默认情况下,服务器将在闲置10分钟后或客户端遍历完后自动关闭游标。 如果要取消游标超时自动销毁,可以使用cursor.noCursorTimeout()方法
- 设置noCursorTimeout选项后,必须使用cursor.close()手动关闭游标,或者遍历完游标的结果。
- db.serverStatus() 方法返回的文档中包含了metrics字段,metrics字段中的cursor字段包含了游标的一些信息
- 自上次服务器重新启动以来超时的游标数
- 设置了选项DBQuery.Option.noTimeout的打开游标的数量,以防止一段时间不活动后发生超时
- "固定"打开游标的数量
- 打开的游标总数
db.serverStatus().metrics.cursor { "timedOut" : <number> "open" : { "noTimeout" : <number>, "pinned" : <number>, "total" : <number> } }
相关文章:

MongoDB文档插入
文章目录 MongoDB文档插入对比增删改查文档插入 MongoDB写安全机制非确认式写入 MongoDB文档查询参数说明查询操作符比较查询操作符逻辑查询操作符元素查询操作符数组查询操作符 模糊查询区别:$regex操作符中的option选项 MongoDB游标介绍游标函数手动迭代游标示例游标介绍 Mon…...

涵盖5大领域的机器学习工具介绍
随着数据的产生及其使用量的不断增加,对机器学习模型的需求也在成倍增加。由于ML系统包含了算法和丰富的ML库,它有助于分析数据和做出决策。难怪机器学习的知名度越来越高,因为ML应用几乎主导了现代世界的每一个方面。随着企业对这项技术的探…...

git修改及合并commit提交
在开发过程中,保持代码记录清晰会更方便追踪,对代码审核人员也更有便宜。 修改commit提交 比如我们刚提交了一个commit,但之后要追加代码到已经推送到远程仓库的提交中,这时我们可以选择修改commit提交,使新的更改也推…...

大型语言模型的语义搜索(一):关键词搜索
关键词搜索(Keyword Search)是文本搜索种一种常用的技术,很多知名的应用app比如Spotify、YouTube 或 Google map等都会使用关键词搜索的算法来实现用户的搜索任务,关键词搜索是构建搜索系统最常用的方法,最常用的搜索算法是Okapi BM25&#x…...
无需统考可获双证的中国社科院-美国杜兰大学金融硕士
无需统考可获双证的中国社科院-美国杜兰大学金融硕士 中国社会科学院作为党和国家的思想库、智囊团,一直致力于金融财经领域政策的研究和咨询工作,在这个方面我们已经形成了深厚的积累。通过长期的研究和实践,我们能够深刻感受中国金融人才培…...
编程笔记 Golang基础 024 映射
编程笔记 Golang基础 024 映射 一、映射二、映射的定义与初始化三、基本操作四、综合示例程序 Go语言中的映射(map)是一种关联数组或哈希表数据结构,它存储键值对,其中每个键都是唯一的。在Go中,你可以使用 map[keyTy…...

基于springboot+vue的中小型医院网站(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 主要内容:毕业设计(Javaweb项目|小程序|Pyt…...
Spring boot 实现监听 Redis key 失效事件
一. 开启Redis key过期提醒 方式一:修改配置文件 redis.conf # 默认 notify-keyspace-events "" notify-keyspace-events Ex方式二:命令行开启 CONFIG SET notify-keyspace-events Ex CONFIG GET notify-keyspace-events二. notify-keyspace-e…...
振动样品磁强计
振动样品磁强计是基于电磁感应原理的高灵敏度磁矩测量仪。检测线圈中的振动产生的感应电压与样品的磁矩,振幅和振动频率成正比。在确保振幅和振动频率的不便的基础上,使用锁相放大器测量该电压,然后可以计算出待测样品的磁矩。 振动样品磁强计…...
C语言标准库介绍:<string.h>
在C语言中,<string.h>头文件是标准库中的一个重要部分,它定义了一系列操作字符串和字符数组的函数。本文将详细介绍<string.h>头文件中包含的22个函数,并提供每个函数的完整示例代码。 简介 <string.h>头文件定义了一个变…...
大语言模型LangChain本地知识库:向量数据库与文件处理技术的深度整合
文章目录 大语言模型LangChain本地知识库:向量数据库与文件处理技术的深度整合引言向量数据库在LangChain知识库中的应用文件处理技术在知识库中的角色向量数据库与文件处理技术的整合实践挑战与展望结论 大语言模型LangChain本地知识库:向量数据库与文件…...

展厅设计中都包含哪些分区与展示内容
1、欢迎区 欢迎区是展厅的入口处,通常展示企业品牌、企业标志和企业形象等内容。这个区域通常会有一个欢迎台,展示企业的宣传片、简介和最新资讯等。 2、产品展示区 产品展示区是展示企业产品的区域,展示的产品包括企业主营产品、新产品和重点…...

【k8s核心概念与专业术语】
k8s架构 1、服务的分类 服务分类按如下图根据数据服务支撑,分为无状态和有状态 无状态引用如下所示,如果一个nginx服务,删除后重新部署有可以访问,这个属于无状态,不涉及到数据存储。 有状态服务,如redis&a…...

【stm32】hal库学习笔记-UART/USART串口通信(超详细!)
【stm32】hal库学习笔记-UART/USART串口通信 hal库驱动函数 CubeMX图形化配置 导入LCD.ioc RTC设置 时钟树配置 设置LSE为RTC时钟源 USART设置 中断设置 程序编写 编写主函数 /* USER CODE BEGIN 2 */lcd_init();lcd_show_str(10, 10, 16, "Demo12_1:USART1-CH340&q…...

通俗易懂理解GhostNetV1轻量级神经网络模型
一、参考资料 原始论文:[1] PyTorch代码链接:Efficient-AI-Backbones MindSpore代码:ghostnet_d 解读模型压缩5:减少冗余特征的Ghost模块:华为Ghost网络系列解读 GhostNet论文解析:Ghost Module CVPR…...

P8630 [蓝桥杯 2015 国 B] 密文搜索
P8630 [蓝桥杯 2015 国 B] 密文搜索 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P8630 题目分析 基本上是hash的板子,但实际上对于密码串,只要判断主串中任意连续的八个位置是否存在密码串即可;那么我们…...

Electron实战之环境搭建
工欲善其事必先利其器,在进行实战开发的时候,我们最终的步骤是搞好一个舒服的开发环境,目前支持 Vue 的 Electron 工程化工具主要有 electron-vue、Vue CLI Plugin Electron Builder、electron-vite。 接下来我们将分别介绍基于 Vue CLI Plu…...
【0259】inval.h/inval.c的理解
1. inval.h/inval.c inval.h、inval.c是缓存无效消息(invalidation message)调度程序定义。 2. inval.h/inval.c特性 inval.h/inval.c的实现是一个非常微妙的东西,所以需要注意: 当一个元组被更新或删除时,我们的标准可见性规则(standard visibility rules)认为只要我…...
力扣爆刷第77天--动态规划一网打尽打家劫舍问题
力扣爆刷第77天–动态规划一网打尽打家劫舍问题 文章目录 力扣爆刷第77天--动态规划一网打尽打家劫舍问题一、198.打家劫舍二、213.打家劫舍II三、337.打家劫舍 III 一、198.打家劫舍 题目链接:https://leetcode.cn/problems/house-robber/ 思路:小偷不…...

深入理解C语言(5):程序环境和预处理详解
文章主题:程序环境和预处理详解🌏所属专栏:深入理解C语言📔作者简介:更新有关深入理解C语言知识的博主一枚,记录分享自己对C语言的深入解读。😆个人主页:[₽]的个人主页🏄…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...

代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...

关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...