为了营造大批量数据,我们可以这样写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用法的更多相关文章

  1. MongoDB基本用法

    MongoDB基本用法(增删改高级查询.mapreduce) 分享一下我经常用到的自己写的mongo用法示例 该示例基于当前最新的mongo驱动,版本为mongo-2.10.1.jar,用junit写 ...

  2. 【pymongo】mongodb cursor id not valid error

    参考来源: http://stackoverflow.com/questions/10298354/mongodb-cursor-id-not-valid-error http://stackover ...

  3. Mongodb基础用法及查询操作[转载]

    插入多条测试数据> for(i=1;i<=1000;i++){... db.blog.insert({"title":i,"content":&qu ...

  4. Mongodb基础用法及查询操作

    插入多条测试数据> for(i=1;i<=1000;i++){... db.blog.insert({"title":i,"content":&qu ...

  5. 爬虫入门【8】Python连接MongoDB的用法简介

    MongoDB的连接和数据存取 MongoDB是一种跨平台,面向文档的NoSQL数据库,提供高性能,高可用性并且易于扩展. 包含数据库,集合,文档等几个重要概念. 我们在这里不介绍MongoDB的特点 ...

  6. mongodb(基础用法)

    驱动和客户端库 https://mongodb-documentation.readthedocs.org/en/latest/ecosystem/drivers.html#id2 https://m ...

  7. mongodb的用法

    关于新版(2.***)的c#用法,网上基本没有.昨天折腾半天,去构造server,发现现在新版本不需要了,文档是这样的,大概意思,无需像原来那样获取server,直接从client获取db就行了. h ...

  8. MongoDB查询用法大全

    转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册: http://www.mongodb.org/d ...

  9. MongoDB基本用法(增删改高级查询、mapreduce)

    TestCase.java package com.wujintao.mongo; import java.net.UnknownHostException; import java.util.Arr ...

随机推荐

  1. [转帖]什么是BSS/OSS,及区别和联系

    什么是BSS/OSS,及区别和联系 https://blog.csdn.net/jionghan3855/article/details/3856873 BSS:Business support sy ...

  2. c++学习笔记之函数重载和模板理解

    1.函数重载: C++ 不允许变量重名,但是允许多个函数取相同的名字,只要参数表不同即可,这叫作函数的重载(其英文是 overload).重载就是装载多种东西的意思,即同一个事物能完成不同功能. 所谓 ...

  3. Jmeter之cookie登录

    1.在web登录时,抓取登录的响应头 2.在jmeter中配置cookie HTTP Cookie管理器中添加信息 以下三个字段是必填的 3.添加HTTP请求(直接访问首页) 如果返回成功,并且响应内 ...

  4. 搭建kafka集群

    1:确认zookeeper集群安装正确,防火墙关闭 2:下载kafka安装文件 cd /usr/local/mydown wget http://mirror.bit.edu.cn/apache/ka ...

  5. TreeMap——实现comparable接口并重写CompareTo方法

    public class TreeMapTest { public static void main(String[] args) { Map<Student,Integer> stude ...

  6. python 的面试题总汇

    函数作用域; LEGB : L>E>G>B L : local函数内部作用域 E : enclosing函数内部与内嵌函数之间 G : global全局作用域 B : build-i ...

  7. java中的运算符与表达式

    运算符与表达式 运算符分类: 0.赋值运算符 = 1.算数运算符 + - * / % 2.比较运算符 < > == <= >= != 3.逻辑运算符 & | ! &am ...

  8. Win10应用商店缓存信息多如何去清理?

    Win10系统的应用商店相比之前有了许多的更新,微软也成立了专门的团队准备对应用商店进行完善,但是我们在使用应用商店的过程中会产生许多缓存文件,占用电脑空间资源,也会影响电脑的运行速度. 下面好系统重 ...

  9. Delphi 使用Query组件的SQL查询

    樊伟胜

  10. 《python解释器源码剖析》第6章--python中的dict对象

    6.0 序 元素和元素之间可能存在着某种关系,比如学生姓名和成绩.我希望能够通过学生的姓名找到这个学生的成绩,那么只需要将两者关联起来即可.字典正是这么做的,字典中的每个元素就是一个key:value ...