位置: 编程技术 - 正文

MongoDB中游标的深入学习(mongodb游记)

发布时间:2024-01-29

推荐整理分享MongoDB中游标的深入学习(mongodb游记),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mongodb有表的概念吗,mongodb游记,mongodb有表的概念吗,mongotemplate游标查询,mongotemplate游标查询,mongodb 游标,mongodb的表,mongotemplate游标查询,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

MongoDB中的游标与关系型数据库中的游标在功能上大同小异。游标相当于C语言的指针,可以定位到某条记录,在MongoDB中,则是文档。因此在mongoDB中游标也有定义,声明, 打开,读取,关闭这么个过程。客户端通过游标,能够实现对最终结果进行有效的控制,诸如限制结果数量,跳过部分结果或根据任意键按任意顺序的组合对结果进行各种排序等。

通俗的说,游标不是查询结果,可以理解为数据在遍历过程中的内部指针,其返回的是一个资源,或者说数据读取接口.

客户端通过对游标进行一些设置就能对查询结果进行有效地控制,如可以限制查询得到的结果数量、跳过部分结果、或对结果集按任意键进行排序等!

直接对一个集合调用find()方法时,我们会发现,如果查询结果超过二十条,只会返回二十条的结果,这是因为Mongodb会自动递归find() 返回的游标。

下文是针对MongoDB游标的具体介绍。

一、mongoDB游标介绍

db.collection.find()方法返回一个游标,对于文档的访问,我们需要进行游标迭代

mongoDB的游标与关系型数据库SQL中的游标类似,可以通过对游标进行(如限制查询结果数,跳过的结果数等)设置来控制查询结果

游标会消耗内存和相关系统资源,游标使用完后应尽快释放资源

在mongo shell中,如果返回的游标结果集未指定给某个var定义的变量,则,游标自动迭代次,即输出前个文档,超出的情形则需要输入it来翻页

本文内容描述手动方式来实现游标迭代来访问文档或者是用索引迭代

声明游标

var cursor = db.collectioName.find(query,projection);

打开游标

Cursor.hasNext() 判断游标是否已经取到尽头

读取数据

Cursor.Next() 取出游标的下一个文档

关闭游标

cursor.close() 此步骤可省略,通常为自动关闭,也可以显示关闭

MongoDB中游标的深入学习(mongodb游记)

用while循环来遍历游标示例

游标生命周期

a、游标完成匹配结果的迭代后,它会清除自身;

b、客户端的游标已经不在作用域内,驱动程序回向服务器发送一条特别的消息,让其销毁;

c、缺省情况下,游标在十分钟内没有使用,游标自动关闭或者客户端已经迭代完整个游标;

d、可以通过cursor.noCursorTimeout()来定义游标超时时间

如:var myCursor = db.users.find().noCursorTimeout()

e、对于自定义超时时长的游标可以使用cursor.close() 来关闭游标

如:db.collection.find(<query>).close()

二、当前环境及数据准备

二、使用print输出游标结果集

三、使用printjsont输出游标结果集

四、使用 forEach()进行迭代

五、基于数组索引迭代

可以使用toArray()将游标迭代文档返回到一个数组,然后通过数组下标方式进行访问。 该方法将所有由游标返回的文档装载进内存。

六、调整游标迭代次数

七、查看游标度量信息

可以通过db.serverStatus()查看游标状态相关的信息,这些信息通常包括

从服务器上次启动之后游标超时的数量

自定义游标超时的数量

游标打开后已经pinned的数量

打开游标的总数目

总结

标签: mongodb游记

本文链接地址:https://www.jiuchutong.com/biancheng/312602.html 转载请保留说明!

上一篇:CentOS 7下用yum快速安装MongoDB的方法教程(centos7自带yum吗)

下一篇:mongoDB 实现主从读写分离实现的实例代码(mongodb中主键的默认格式是哪个?)

  • 职工福利费计税税率
  • 以前年度损益结转到未分配利润
  • 开农贸市场挣钱吗
  • 暂估入库收到发票后怎么做分录
  • 已经开了发票需要退款怎么处理
  • 小规模纳税人缴纳上月应交增值税
  • 免征增值税还要交印花税么
  • 怎么查纳税人信用等级
  • 银行存款没有期初余额的总账怎么填
  • 无形资产研发成功并申请专利
  • 咨询服务企业发展瓶颈期
  • 首次购置增值税税控系统
  • 资质挂靠人员需要交个税吗?
  • 地税都包括什么
  • 企业所得税季度纳税申报表 a类
  • 销售固定资产可以开专票吗
  • 有进项无销项会计分录
  • 向职工出售住房
  • 增值税普通发票和普通发票的区别怎么交税
  • 转销和冲销是什么意思
  • 1697508645
  • 享受小型微利企业标准
  • 娱乐行业缴税
  • 烟花爆竹入库须知
  • 在建工程及时结转重要性
  • 出口企业免抵退是什么意思
  • win10系统如何开启蓝牙
  • 笔记本win10玩红警怎么全屏
  • 土地增值税清算全流程实战案例
  • elf.exe是什么程序
  • 股份有限公司向股东借款
  • 圣克鲁斯河特点
  • php怎么操作数据库
  • 西部大开发的主要政策措施是什么?
  • 哪些情况下公司不能辞退员工
  • uni-app实战教程
  • 自定义max函数
  • 怎么用switch语句
  • 自定义函数是啥
  • 非货币性资产交换以公允价值为基础进行计量
  • 营改增后的劳务费怎么开
  • 缴纳上月应交未交税费
  • 一般纳税人报税流程详细操作
  • 利润表中利息费用包括手续费吗
  • 购销合同印花税按70%
  • 公司对员工罚款怎么处理
  • 进口关税如何记账
  • 工资里计提五险什么意思
  • 框架合同范文
  • 规划设计费收费依据
  • 可供出售金融资产是指什么
  • 旅游饮食服务企业的特点包括
  • 检查sql脚本语法
  • win7显示网上邻居图标
  • 苹果手机价格
  • 删除文件或文件夹时出错怎么办
  • rhel7提供的5种基本安装方式是
  • windows7 无线服务
  • linux操作系统网课
  • cocos2d-x安装
  • unity锚点
  • ExtJS Grid使用SimpleStore、多选框的方法
  • perl脚本函数
  • opengl光线跟踪代码
  • opengl教程48讲
  • js设计模式有什么用
  • unity控制相机旋转
  • unity小游戏代码
  • 在python中的用法
  • python的字符串处理
  • 欢迎使用本公司智能语音电动车
  • jquerycuishifeng
  • 河南办税服务厅
  • 如何查询车辆购买信息
  • 税务稽查延期检查最长多长时间最长不得超过30日
  • 资源税属于国税还是地税
  • 税务机关对核准类减免税的审核
  • 两江新区两江大道航空航天产业园
  • 社保已生成单据如何作废上海
  • 广东省东莞市电子税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号