MongoDB(课时20 游标)
3.5 游标(重点)
所谓游标就是指数据可以一行行的进行操作,非常类似于ResultSet数据处理。在MongoDB里对游标的控制使用find()函数就可以返回游标。对于返回的游标如果想进行操作,使用两个函数:
- 判断是否有下一行数据:hasNext()
- 取出当前数据:next()
var cursor = db.students.find() //db.students.find()返回students集合中数据
cursor.hasNext()
cursor.next()

以上是游标的操作形式,但是实际上不可能这么去用,因为必须利用循环才能输出内容。
范例:编写具体的操作代码
var cursor = db.students.find()
while (cursor.hasNext()){
cursor.next()
}

用cursor.next()并不能循环输出全部信息,只能输出最后一条。
var cursor = db.students.find()
while (cursor.hasNext()){
var doc = cursor.next()
print(doc.name)
}

用print()能循环输出全部信息。
var cursor = db.students.find()
while (cursor.hasNext()){
var doc = cursor.next()
print(doc)
}

当游标数据取出来之后,实际上每行数据返回的都是一个Object型的内容,那么如果需要将数据按照json的形式出现,则可以使用printjson()函数完成。
var cursor = db.students.find()
while (cursor.hasNext()){
var doc = cursor.next()
printjson(doc)
}

(这里只显示部分数据)
在所有数据库中,MongoDB的游标操作是最简单,最直观的。
MongoDB(课时20 游标)的更多相关文章
- 学习MongoDB 六: MongoDB查询(游标操作、游标信息)(三)
一.简介 db.collection.find()可以实现根据条件查询和指定使用投影运算符返回的字段省略此参数返回匹配文档中的所有字段.并返回到匹配文档的游标,可以随意修改查询限制.跳跃.和排序顺序的 ...
- MongoDB学习笔记-游标
理解MongoDB的游标有两种维度:客户端和服务器端.下面将从这两方面来说明. 客户端 find方法返回值是一个游标.可以通过游标来对最终结果进行控制.比如限制结果数量,略过某一部分,根据任意键按任意 ...
- mongoDB查询及游标
find文档 1.find简介 使用find查询集合中符合条件的子集合 db.test.blog.find(); 类似于sql查询 select * from test.blog 上面的查询是返回多有 ...
- MongoDB基础之五:游标
1.cursor(游标)是什么 ? 通俗的说,游标不是查询结果,而是查询的返回资源,或者接口. 通过这个接口,你可以逐条读取. 就像php中的fopen打开文件,得到一个资源一样, 通过资源,可以一行 ...
- MongoDB (课时1,2)
1.数据库之中支持的的SQL语句是由IBM开发出来的,使用并不麻烦,就是几个简单的单词:select, from, where, group by, having, order by.目前最流行的数 ...
- 面向对象程序设计-C++_课时19const_课时20不可修改的
error C2131: 表达式的计算结果不是常数 #include <iostream> using namespace std; void main() { ; int finalGr ...
- MongoDB小结20 - find【查询条件$size】
size可以获得指定数组长度的文档 db.user.find({"fruit":{"$size":3}},{"_id":0}) { &quo ...
- MongoDB shell 5 游标方法
方法名 描述 cursor.snapshot() cursor.itcount() cursor.batchSize() cursor.pretty() cursor.hint() ...
- MongoDB之三(高级操作 聚合、游标)
一: 聚合 常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce. <1> count count是最简单,最容易,也是最常用的聚合工 ...
随机推荐
- Oracal 11 g 数据库安装
一:下载安装包 http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/112010-win64soft- ...
- 7zip
1.下载地址. https://www.7-zip.org/ 2.傻瓜式安装.
- mysql的count方法详解
1.cout(*)会统计为null的行: 2.count(列名)不会统计此列null值的行: 3.count(distinct col)计算该列除null之外的不重复数量:
- nginx安装,反向代理配置
1.centos 版本 下载最新稳定版 https://www.nginx.com/resources/wiki/start/topics/tutorials/install/# 2.执行语句: ./ ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON FastThreshold1
zw版[转发·台湾nvp系列Delphi例程]HALCON FastThreshold1 procedure TForm1.Button1Click(Sender: TObject);var img ...
- JSON自动生成相关类
开源项目地址:https://jsonclassgenerator.codeplex.com/SourceControl/latest 太好用了,这个
- python recv()是什么
socket有个recv方法,recv有一个参数,指定数据缓冲区的大小 但是现在的问题就是不知道将要接受的数据的大小到底是多少,可能只有几个字节,可能会有几M,google了一下socket的入门文章 ...
- Python 运算符与基本数据类型
一.运算符 1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算: 5.成员运算: 二.基本数据类型 1.空(None) 表示该值是一个空对象,空值是Python里一个特殊的值,用None表示 ...
- 功能测试三剑客:测试框架、bug预防、探索性测试
功能测试有一套框架来实现完整的覆盖测试的各个维度 测试框架: 参加本人之前的博客测试框架(包括总体的框架.web测试框架.PC客户端.手机客户端.服务器端.接口测试)六部分,罗列了各个领域的测试覆盖考 ...
- sublime工具安装完成后使用Emmet加快前端页面的开发速度
sublime的安装这里就不介绍了,很多人看到有些人在使用sublime时使用了一些快捷键非常快速的搭建一个简单的html,简单的结构就打起来了.不需要手动一个标签一个标签写. 其实是他们安装了Emm ...