mongodb cursor用法
为了营造大批量数据,我们可以这样写javascript脚本
for (var i=1;i<=10000;i++)
{ if(i%2==1)
{
db.cursortest.insert({_id:i,name:'程劲'+i,age:19,major:['泰拳','散打','巴西柔术','和saintding大哥玩SM']});
}
else if(i%2==0)
{
db.cursortest.insert({_id:i,name:'陈培昌'+i,age:21,major:['泰拳','散打','巴西柔术','和saintding大哥一起厮混']});
}
}
显然,这样海量的数据,需要cursor帮助我们完成查询
可以指定只显示前10行
var mycursor = db.cursortest.find({_id:{$lte:10}})
mycursor.next()依次取下一条
当然mongodb为我们封装了forEach函数来循环打印结果注意大小写:
mycursor.forEach(function(obj){printjson(obj)})
效果如下:

还有分页的功能:
var duwa = db.cursortest.find().skip(9990)
duwa.forEach(function(obj){printjson(obj)})

var tianwadi = db.cursortest.find().skip(9990).limit(5)
tianwadi.forEach(function(obj){printjson(obj)})
跨过前9990行,只显示5条
下面使用游标的toArray()方法,结果卧操~

注意!无论在命令行还是类似studio3T这样的IDE,在每次执行完游标的操作后,游标已经穷尽了数据集,所以要通过再声明一次游标的方法,以确保游标的forEach操作能继续进行。
var tianwadi = db.cursortest.find().skip(9990).limit(5)
tianwadi.toArray()
输出结果会返回一个列表,如下:
[
{
"_id" : 9991,
"name" : "程劲9991",
"age" : 19,
"major" : [
"泰拳",
"散打",
"巴西柔术",
"和丁大哥玩SM"
]
},
{
"_id" : 9992,
"name" : "陈培昌9992",
"age" : 21,
"major" : [
"泰拳",
"散打",
"巴西柔术",
"和丁大哥一起厮混"
]
},
{
"_id" : 9993,
"name" : "程劲9993",
"age" : 19,
"major" : [
"泰拳",
"散打",
"巴西柔术",
"和丁大哥玩SM"
]
},
{
"_id" : 9994,
"name" : "陈培昌9994",
"age" : 21,
"major" : [
"泰拳",
"散打",
"巴西柔术",
"和丁大哥一起厮混"
]
},
{
"_id" : 9995,
"name" : "程劲9995",
"age" : 19,
"major" : [
"泰拳",
"散打",
"巴西柔术",
"和丁大哥玩SM"
]
}
]
如果只取列表中的第4条操作如下:
var tianwadi = db.cursortest.find().skip(9990).limit(5)
tianwadi.toArray()[4]
返回结果如下;
{
"_id" : 9995,
"name" : "程劲9995",
"age" : 19,
"major" : [
"泰拳",
"散打",
"巴西柔术",
"和丁大哥玩SM"
]
}
mongodb cursor用法的更多相关文章
- MongoDB基本用法
MongoDB基本用法(增删改高级查询.mapreduce) 分享一下我经常用到的自己写的mongo用法示例 该示例基于当前最新的mongo驱动,版本为mongo-2.10.1.jar,用junit写 ...
- 【pymongo】mongodb cursor id not valid error
参考来源: http://stackoverflow.com/questions/10298354/mongodb-cursor-id-not-valid-error http://stackover ...
- Mongodb基础用法及查询操作[转载]
插入多条测试数据> for(i=1;i<=1000;i++){... db.blog.insert({"title":i,"content":&qu ...
- Mongodb基础用法及查询操作
插入多条测试数据> for(i=1;i<=1000;i++){... db.blog.insert({"title":i,"content":&qu ...
- 爬虫入门【8】Python连接MongoDB的用法简介
MongoDB的连接和数据存取 MongoDB是一种跨平台,面向文档的NoSQL数据库,提供高性能,高可用性并且易于扩展. 包含数据库,集合,文档等几个重要概念. 我们在这里不介绍MongoDB的特点 ...
- mongodb(基础用法)
驱动和客户端库 https://mongodb-documentation.readthedocs.org/en/latest/ecosystem/drivers.html#id2 https://m ...
- mongodb的用法
关于新版(2.***)的c#用法,网上基本没有.昨天折腾半天,去构造server,发现现在新版本不需要了,文档是这样的,大概意思,无需像原来那样获取server,直接从client获取db就行了. h ...
- MongoDB查询用法大全
转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册: http://www.mongodb.org/d ...
- MongoDB基本用法(增删改高级查询、mapreduce)
TestCase.java package com.wujintao.mongo; import java.net.UnknownHostException; import java.util.Arr ...
随机推荐
- git常用命令总结——覆盖日常开发全操作
前言:Git是目前世界上最先进的分布式版本控制系统,对的,最先进! 1. 版本库,又名仓库,repository 可理解成一个目录,目录里的所有文件都可被Git管理,Git可以跟踪每个文件的修改.删除 ...
- [转帖]快速部署Telegraf & Influxdb
快速部署Telegraf & Influxdb https://www.cnblogs.com/deykenlee/p/7565647.html 作者的blog 比较早 后来 influxdb ...
- Less学习(1)
写在开头的话: 月余前被问起会不会Less,当时就有想学这个css框架的念头,而在昨天,在前端乱炖上看到一篇LessCss的开篇介绍,忽然就有了一股立马去学的冲动,回到家后找了几篇文章看了下,初感觉比 ...
- Linux系列(5):入门之文件类型与扩展名
通过本章你会了解到: 文件类型有哪些? 文件扩展名的意义是什么? 1.文件类型 任何设备在Linux系统中都是文件,不仅如此,连数据沟通的接口也有专属的文件在负责,所以Linux的文件种类真的很多,除 ...
- 今天测试大商创,遇到了 upstream sent too big header while reading response header from upstream
今天在测试大商创后台系统时,打开店铺结算,查看店铺对应的订单列表时,该列表自动跳转到502,查看线上和测试环境都能正常打开,唯独我的电脑上打开是502, 查询nginx的error.log日志,记录了 ...
- F. 汤圆防漏理论
ghc很喜欢吃汤圆,但是汤圆很容易被粘(zhān)漏. 根据多年吃汤圆经验,ghc总结出了一套汤圆防漏理论: 互相接触的汤圆容易粘(zhān)在一起,并且接触面积不同,粘(zhān)在一起的粘(niá ...
- wpf GeometryDrawing 绘制文字
<GeometryDrawing x:Key="GeometryDrawingText"> <GeometryDrawing.Geometry> <R ...
- 闭包问题for(var i=0;i<10;i++){ setTimeout(function(){ console.log(i)//10个10 },1000) }
for(var i=0;i<10;i++){ setTimeout(function(){ console.log(i)//10个10 },1000) } 遇到这种问题 如何用解决呢 for(v ...
- Idea破解2019
转自:https://blog.csdn.net/qq_36622149/article/details/88910952 Idea破解,亲测有效,轻量快捷高效更新记录:首次:Idea破解,亲测有效2 ...
- 4、linux目录结构
一.目录结构 /: 所有linux操作系统的顶点目录,不像windows,每个分区都有一个顶点目录 /boot 存放系统启动时相关的文件,比如kernel内核,grub引导菜单.(不要删除.) /bi ...