mongodb05---游标

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:
复制代码
游标cursor:

通俗的说,游标不是查询结果,而是查询的返回资源,或者接口.
通过这个接口,你可以逐条读取.就像php中的fopen打开文件,得到一个资源一样, 通过资源,可以一行一行的读文件.

var cursor1 =  db.bar.find({});  //10000条没有输出,

db.bar.find().count();
var cursor1 =  db.bar.find({_id:{$lte:10}});//id小于等于10
while(cursor1.hasNext()){   //while循环
    print(cursor1.next());//打印bson,next一次就移动一次
    printjson(cursor1.next());//next一次就移动一次
}

//for循环输出
for(var cs=db.bar.find({_id:{$lte:10}}),doc=true;cs.hasNext();){
    printjson(cs.next());
}

//foreach输出:
var cs = db.bar.find({_id:{$lte:10}});
cs.forEach(function(o){printjson('你的title是'+o.title)})
输出:
"你的title是hello1"
"你的title是hello3"
"你的title是hello5"
"你的title是hello7"
"你的title是hello9"
"你的title是hello11"




游标在分页中的应用
比如查到10000行,跳过100页,取10行.一般地,我们假设每页N行, 当前是page页就需要跳过前 (page-1)*N 行, 再取N行,
 
在mysql中, limit offset,N来实现
在mongo中,用skip(), limit()函数来实现的

如 var mycursor = db.bar.find().skip(9995);
则是查询结果中,跳过前9995行
查询第901页,每页10条
则是 
var mycursor = db.bar.find().skip(500).limit(10);
mycursor.forEach(function(o){printjson('你的title是'+o.title)});




通过cursor一次性得到所有数据, 并返回数组.
例:
var cursor = db.bar.find().skip(500).limit(20);
printjson(cursor.toArray());  //不想迭代,而是直接打印出来,看到所有行
printjson(cursor.toArray()[2]);  //看到第2行

注意: 不要随意使用toArray()
原因: 会把所有的行立即以对象形式组织在内存里.
可以在取出少数几行时,用此功能.
</pre>
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/8149292.html,如需转载请自行联系原作者

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
NoSQL MongoDB 数据库
4种方法解决MongoDB游标超时的问题
4种方法解决MongoDB游标超时的问题
571 0
|
NoSQL Shell MongoDB
MongoDB(15)- 查询操作里面的游标 cursor
MongoDB(15)- 查询操作里面的游标 cursor
394 0
MongoDB(15)- 查询操作里面的游标 cursor
|
存储 JavaScript NoSQL
《MongoDB管理与开发精要》——3.4节游标和存储过程
本节书摘来自华章社区《MongoDB管理与开发精要》一书中的第3章,第3.4节游标和存储过程,作者:红 丸,更多章节内容可以访问云栖社区“华章社区”公众号查看
1392 0
|
NoSQL 数据库 MongoDB
MongoDB 游标
MongoDB中的游标与关系型数据库中的游标在功能上大同小异。游标相当于C语言的指针,可以定位到某条记录,在MongoDB中,则是文档。
1153 0
|
SQL NoSQL JavaScript
mongoDB查询及游标
find文档 1.find简介 使用find查询集合中符合条件的子集合 1 db.test.blog.find(); 类似于sql查询 1 select * from test.blog   上面的查询是返回多有多有集合,并且是所有键。
1477 0
|
NoSQL 关系型数据库 数据库
3.非关系型数据库(Nosql)之mongodb:升降序排序,排序分页,$all,$in,$nin,$or,$nor, $exists,游标,更新(update,$set,$unset,$inc)
 1排序sort() A降序排列 db.c4.find().sort().sort({age:-1}); B升序排列: db.c4.find().sort({age:-1}); C排序分页 db.collectionName.find().sort({age:-1}).skip(2
1268 0
|
1天前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
|
1月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。