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:/jk/,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> } }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/397301.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

揭秘智能商品计划管理系统:为何服装企业老板争相引入?

在如今日新月异的商业环境中&#xff0c;服装企业老板们纷纷将目光转向了一种名为“智能商品计划管理系统”的创新工具。这种系统不仅具有高度的自动化和智能化特性&#xff0c;还能显著提升企业的运营效率、减少库存积压&#xff0c;并帮助企业在激烈的市场竞争中占据优势地位…

xilinx除法器的使用

平台&#xff1a;Vivado2018.3. 芯片&#xff1a;xcku115-flva1517-2-i (active) 最近学习使用了xilinx除法器&#xff0c;在使用过程中出现了很多次除法器的结果和我预计的结果不一致&#xff0c;特此记录学习一下。 参考文件&#xff1a;pg151.下载地址 pg151-div-gen.pdf …

简单了解一下加密算法

1.1单向散列算法 单向散列函数算法也称 Hash(哈希)算法&#xff0c;是一种将任意长度的消息压缩到某一固定长度(消 息摘要)的函数(该过程不可逆)。Hash 函数可用于数字签名、消息的完整性检测、消息起源的认 证检测等。常见的散列算法有MD5 、SHA 、RIPE-MD 、HAVAL 、N-Hash等…

【Pygame手册03/20】用 pygame 模块draw绘制形状

目录 一、说明二、画图函数2.1 接口draw下的函数2.2 pygame.draw.rect()2.3 pygame.draw.polygon()2.4 pygame.draw.circle()2.5 pygame.draw.ellipse()2.6 pygame.draw.arc()2.7 pygame.draw.line ()2.8 pygame.draw.lines()2.9 pygame.draw.aaline()2.10 pygame.draw.aaline…

【EI会议征稿通知】2024年通信安全与信息处理国际学术会议(CSIP 2024)

2024年通信安全与信息处理国际学术会议&#xff08;CSIP 2024) 2024 International Conference on Communication Security and Information Processing 随着全球信息化的深入发展&#xff0c;通信安全与信息处理已成为当今社会关注的热点问题。为了加强国际间的学术交流与合…

Java之获取Nginx代理之后的客户端IP

Java之获取Nginx代理之后的客户端IP Nginx代理接口之后&#xff0c;后台获取的IP地址都是127.0.0.1&#xff0c;解决办法是需要配置Nginx搭配后台获取的方法&#xff0c;获得设备的真实地址。我们想要获取的就是nginx代理日志中的这个IP nginx配置 首先在nginx代理的对应lo…

opencv安装介绍以及基本图像处理详解

文章目录 一、什么是OpenCV &#xff1f;二. OpenCV 安装1. 下载地址2.安装命令&#xff1a;pip install opencv-python 三、图像基础1. 基本概念2. 坐标系3. 基本操作&#xff08;彩色图片&#xff09;&#xff08;1&#xff09;读取图片&#xff1a;cv2.imread( )&#xff08…

ThreadLocal(3):ThreadLocal的内部结构

下面介绍ThreadLocal的内部结构&#xff0c;探究它能够实现线程数据隔离的原理。 1 常见的误解 ​如果我们不去看源代码的话&#xff0c;可能会猜测ThreadLocal是这样子设计的&#xff1a;每个ThreadLocal都创建一个Map&#xff0c;然后用线程作为Map的key&#xff0c;要存储…

this的指向问题总结

this一般会出现在函数里面&#xff0c;但是一般情况下只有在函数被调用执行时&#xff0c;才能确定this指向哪个对象。一般情况下this是指调用函数的对象。 1.在全局作用域下或者普通函数中this的指向一般都是window对象 window.fn&#xff08;&#xff09;&#xff0c;普通函…

前端实现鼠标点击箭头旋转180度

效果&#xff1a; <div click"showChecklist" class"checkCLass cur pr-20px pl-20px pa flex ai-center"><span>{{ checkListStatus() }}</span><p class"trangle"></p></div> 下面是三角形状的样式 .tr…

qt对stl模型显示的封装

我一直都想把vtk显示这一块做成一个封装的静态lib&#xff0c;然后别的类只需要我暴露出的头文件和lib文件就可以了&#xff0c;这次我实现的是对一个放stl文件的文件夹下的stl文件做显示&#xff0c;用的是vs2017qt,实现的主要效果如下&#xff1a; 因为qt自身带的标题栏显示…

CAN_相关的测试用例+测试方法+测试工具使用+输出测试报告

测试类型: 第一:通信测试 第二:间接网络管理测试 第三:AUTOSAR网络管理测试 第四:诊断协议栈Diva测试 第五:诊断协议补充测试 第六:Bootloader测试 第七:网…

用html编写的招聘简历

用html编写的招聘简历 相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</tit…

架构师蓝图: 理解软件风格与模式

本文介绍了10种软件架构风格及其对应设计模式&#xff0c;梳理了各个风格的优缺点和适用场景&#xff0c;帮助读者在架构选项过程中能有的放矢&#xff0c;做出更适合业务场景的架构设计。原文: The Architect’s Blueprint: Understanding Software Styles and Patterns with …

onlyoffice document builder使用

office这个体系分为四个大教程 1、【document server文档服务器基础搭建】 2、【连接器(connector)或者jsApi调用操作office】-进阶 3、【document builder文档构造器使用】-进阶 4、【Conversion API(文档转化服务)】-进阶 如果需要连接器&#xff0c;可以查看&#xff1…

认识Redis:不只是缓存,还有这些厉害的功能!

在当今数据驱动的世界中&#xff0c;快速存取信息成为了技术发展的关键。而在众多存储解决方案中&#xff0c;Redis以其独特的魅力和强大的功能&#xff0c;成为了开发者们的宠儿。今天&#xff0c;就让我们一起来认识一下Redis。 一、Redis是什么&#xff0c;可以用来干什么&…

EasyRecovery易恢复中文破解版2024最新破解序列号

EasyRecovery易恢复是一款来自美国的数据恢复软件&#xff0c;已有35年&#xff08;或38年&#xff09;的历史。它支持不同存储介质的数据恢复&#xff0c;包括电脑系统硬盘、移动硬盘等&#xff0c;并针对不同的数据丢失原因提供了相应的恢复方案。 EasyRecovery易恢复是一款功…

【清关知识】毛里求斯的清关文件及清关手续

1、清关文件 1&#xff09;发票 海关发票&#xff08;3份&#xff09;、商业发票。所有货物随货发票必须为正本原始发票&#xff0c;所有进口商在办理清关提货手续时&#xff0c;首先必须向海关呈交商业登记号码&#xff0c;凭此登记号码才可向公司注册局登记。 2&#xff0…

【linux】体系结构和os管理

冯诺依曼体系结构 输入单元&#xff1a;包括键盘, 鼠标&#xff0c;扫描仪, 写板等 中央处理器(CPU)&#xff1a;含有运算器和控制器等 输出单元&#xff1a;显示器&#xff0c;打印机等 这里的存储器指的是内存 三者是相互连接的&#xff0c;设备之间会进行数据的来回拷贝&am…

以理论89、上机100分成绩终于通过了OceanBase OBCP的考试

OceanBase OBCP的考试分为理论考试和上机考试&#xff0c;跟OBCA认证考试比较来说&#xff0c;难度上升了一个很多大的层次。OBCA我是好几年前考的了&#xff0c;现在因为公司再去o&#xff0c;准备进OceanBase&#xff0c;所以必须快速考出OBCP证书&#xff0c;本来想着直接背…