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 ...
随机推荐
- 【ActiveReports 大数据分析报告】2019国庆旅游出行趋势预测
今年国庆假期全国接待国内游客人数有望达到8亿人次! 随着2019国庆小长假的临近,不少游客已经开始着手规划假期出游路线.据权威机构发布的<2019国庆旅游趋势预测报告>显示,今年“十一黄金 ...
- Linux系列:进阶之tomcat安装
思路:作者是在Windows上从Apache官网下载的tomcat,之后将tomcat文件放到我的ftp站点中,在Linux访问ftp站点下载tomcat文件 ,将tomcat放在我自己的安装目录中, ...
- Spring4学习回顾之路01—HelloWorld
以前公司一直使用的是spring3.0,最近一段时间开始用了4.0,官网上都已经有了5.0,但是很多知识点已经忘了差不多了,趁现在项目不忙写写随笔,一来回顾自己的知识点,二来如果能帮助比我还小白的小白 ...
- _variant_t 与其他数据类型的转换
在COM中使用的标准类Class如下所示: _bstr_t:对BSTR类型进行打包,并提供有用的操作方法: _com_error:定义抛出的error对象; _com_ptr_t:封装COM接口指针 ...
- 01背包方案数(变种题)Stone game--The Preliminary Contest for ICPC Asia Shanghai 2019
题意:https://nanti.jisuanke.com/t/41420 给你n个石子的重量,要求满足(Sum<=2*sum<=Sum+min)的方案数,min是你手里的最小值. 思路: ...
- dmesg、stat命令
一.dmesg:系统启动异场诊断. 语法: dmesg [选项] 参数: -C,-清除 清除环形缓冲区. -c,--read-clear ...
- QT目录模型QDirModel的使用(一个model同时连接tree,list,table)
3#include <QApplication>#include <QAbstractItemModel>#include <QAbstractItemView># ...
- 并不对劲的CF480E:Parking Lot
题目大意 有一个\(n\times m\)的网格,每个位置是黑色或者白色.\(k\)个操作,每个操作是将一个白格子染黑,操作后输出当前最大的白色正方形的边长.\(n,m,k\leq 2\times 1 ...
- tensorflow零起点快速入门(4) --入门常用API
tf.reduce_mean https://blog.csdn.net/he_min/article/details/78694383 计算均值,全部数字的均值,纵向一维的均值,横向一维的均值 tf ...
- MySQL中的数据库对象
1.数据库中一般包含下列对象 表.约束.索引.触发器.序列.视图: 可以使用图形用户界面或通过显式执行语句来创建这些数据库对象.用于创建这些数据库对象的语句称为“数据定义语言”(DDL),它们通常以关 ...