位置: 编程技术 - 正文

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

编辑:rootadmin

推荐整理分享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中主键的默认格式是哪个?)

  • 个人所得税中应纳税所得额高好还是低好
  • 什么类型的电子商务
  • 上月做其它应付款本月发票到如何做
  • 办公室转租怎么给对方开发票
  • 小规模企业所得税多少
  • 车辆过户需要交费吗
  • 进口货物会计分录举例
  • 国有企业出租房屋管理规定
  • 旅行社小规模纳税人增值税怎么征税
  • 免税单位无租使用纳税单位土地
  • 两免三减半政策适用哪些企业
  • 无法支付的其他账户
  • 房租收入如何结转成本
  • 公益性生物资产有哪些
  • 作价入股的土地可以摊销无形资产吗
  • 什么科目呀
  • 同期对比和同比增长
  • 异地项目预缴个人所得税
  • 去银行打回单需要带身份证吗
  • 外管证预缴增值税怎么抵扣
  • 诉讼费如何记账
  • 2021最新版眼保健视频
  • 科技服务业是怎么分类的
  • 前端 vue
  • mac 10.11系统
  • 房产税和土地使用税征税对象
  • PHP:mcrypt_ecb()的用法_Mcrypt函数
  • 长期债券投资业务处理
  • 出租固定资产取得的收入属于收入要素吗
  • vue3框架的优点
  • 不属于工资薪金所得的是
  • 缅甸安达曼海
  • 批发商和零售商属于
  • react extend
  • mfc中format
  • 小三用英语怎么写?
  • 公司加班餐费会计科目
  • 研发支出是资产类会计科目吗
  • 以下哪些企业需要填报
  • 外贸进出口企业注册资金
  • 销售服饰
  • 发现以前年度损益调整怎么记账
  • 固定资产处置增值税政策
  • 向银行申请银行汇票
  • sqlserver2012开发版
  • 新会计准则计提减值准备
  • 职工工伤住院期间的各项费用由谁负责
  • 总分类账的登记依据和方法取决于企业所采用的
  • 可转换公司债券名词解释
  • 未认证未抵扣的进项税
  • 应缴国库款和应缴财政专户款有什么区别
  • 固定资产的类别
  • 融资租赁固定资产折旧年限
  • 以前年度多计提成本怎么处理
  • 公司自建房要交房产税吗
  • 为什么记账能省钱
  • 非营利性组织和营利性组织的区别
  • 个人所得税个人申报和公司申报区别
  • 购买本公司产品未付款需要签名字吗
  • 用户登陆login什么意思
  • sql查询结果数量
  • 跨服务器访问数据库
  • Windows下System Volume Information文件夹是干嘛用的?
  • 新装的ubuntu18没有网络
  • 数据中心为什么要建在山洞里
  • win8关闭开机启动项
  • windows附件在哪里打开
  • Ubuntu 14.04系统怎么安装Nvidia 私有显卡驱动?
  • windowsxp桌面图标消失
  • ControlSet001、ControlSet002以及CurrentControlSet之间有什么区别
  • win7系统安装谷歌浏览器
  • mac计算器快捷键
  • w10系统屏幕一直在闪
  • win8应用错误怎么办
  • win10系统玩英雄联盟可以吗
  • jquery prevall
  • python编码函数
  • jquery示例
  • pythonandroid开发
  • 神州浩天财务软件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设