为了营造大批量数据,我们可以这样写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. WijmoJS 中自定义 React 菜单和列表项模板

    WijmoJS 中自定义 React 菜单和列表项模板 在V2019.0 Update2 的全新版本中,React 框架下 WijmoJS 的前端UI组件功能再度增强. WijmoJS的菜单和类似列表 ...

  2. hbase与hdfs的交互

    hdfs和hbase的交互,和写MapReduce程序类似,只是需要修改输入输出数据和使用hbase的javaAPI对其进行操作处理即可 public class HBaseToHdfs extend ...

  3. 什么是分析型数据库PostgreSQL版

    分析型数据库PostgreSQL版(原HybridDB for PostgreSQL)为您提供简单.快速.经济高效的 PB 级云端数据仓库解决方案.分析型数据库PostgreSQL版 兼容 Green ...

  4. Kick Start 2019 Round H. Elevanagram

    设共有 $N = \sum_{i=1}^{9} A_i$ 个数字.先把 $N$ 个数字任意分成两组 $A$ 和 $B$,$A$ 中有 $N_A = \floor{N/2}$ 个数字,$B$ 中有 $N ...

  5. ABC044 Digit Sum

    题目链接 我的思路略复杂,这里介绍一个比较简洁的做法. 对于 $b \le \sqrt{N}$,暴力枚举 $b$.对于 $b > \sqrt{N}$, 注意到在 $b$ 进制下 $N$ 至多有 ...

  6. Android Application的目录结构

    目录结构: 1,java目录:保存java或kotlin源文件 2,res目录:保存Android项目的各种资源文件.比如layout子目录存放界面布局文件,values子目录存放各种XML格式的资源 ...

  7. phpQuery简介

    接上一篇,使用 Snoopy 抓取回来网页之后,需要解析网页中的元素,但是对于 https://www.cnblogs.com/hellowzd/p/5163276.html

  8. Python 字符串,元祖,列表之间的转换

    1.字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello World!' 2. ...

  9. 安装kubenetes-遇到的问题总结

    # 5.修改docker的cgroup驱动(不需要操作)# kubelet# 看到最后一行:error: failed to run Kubelet: failed to create kubelet ...

  10. merge into使用方法

    此外,You cannot update a column that is referenced in the ON condition clause.,update的字段不可以是on里面的条件字段, ...