MongoTemplate使用Cursor处理大数量的数据
2017-02-15 16:09
344 查看
对于数据量巨大的情况下,使用mongoTemplate.find()方法返回一个列表,如果不分页的话恐怕比较麻烦。mongoTemplate提供了另外一种方法,使用游标逐个获取数据,同时可以指定只获取哪些域,而不是全部获取回来。
例子如下:
DBObject query = new BasicDBObject(); //setup the query criteria 设置查询条件
query.put("method", method);
query.put("ctime", (new BasicDBObject("$gte", bTime)).append("$lt", eTime));
logger.debug("query: {}", query);
DBObject fields = new BasicDBObject(); //only get the needed fields. 设置需要获取哪些域
fields.put("_id", 0);
fields.put("uId", 1);
fields.put("ctime", 1);
DBCursor dbCursor = mongoTemplate.getCollection("collectionName").find(query, fields);
while (dbCursor.hasNext()){
DBObject object = dbCursor.next();
logger.debug("object: {}", object);
//do something.
}
例子如下:
DBObject query = new BasicDBObject(); //setup the query criteria 设置查询条件
query.put("method", method);
query.put("ctime", (new BasicDBObject("$gte", bTime)).append("$lt", eTime));
logger.debug("query: {}", query);
DBObject fields = new BasicDBObject(); //only get the needed fields. 设置需要获取哪些域
fields.put("_id", 0);
fields.put("uId", 1);
fields.put("ctime", 1);
DBCursor dbCursor = mongoTemplate.getCollection("collectionName").find(query, fields);
while (dbCursor.hasNext()){
DBObject object = dbCursor.next();
logger.debug("object: {}", object);
//do something.
}
相关文章推荐
- Sql Server cursor 的使用处理重复数据 动态拼接 SQL语句
- Sql Server使用cursor处理重复数据过程详解
- Sql Server使用cursor处理重复数据过程详解
- 使用block处理回调数据
- xml数据处理--sax模块使用
- xml数据处理--ElementTree模块使用
- xml数据处理--expat模块使用
- 基于C++的串口通讯//使用MsComm控件//SetRThreshold()函数的使用,根据数据数量触发端口
- 使用Python Yaml包处理Json数据
- AX2012处理数据2--在SQL中使用宏
- 使用Flume进行数据的实时收集处理
- 使用 Apache Pig 处理数据5
- 使用 Apache Pig 处理数据6
- 使用 DB2 的 LOAD FROM CURSOR 特性快速轻松地转移数据
- 使用 Apache Pig 处理数据7
- session失效,使用ajax请求数据被拦截,此时正常的处理逻辑是跳到登录界面,而不是界面没有变化(java判断是否是ajax请求)
- 使用MSComm控件接收GPS数据,并进行处理
- 使用java.util.concurrent包多线程处理数据
- 数字图像处理 CImage类的使用与封装(jpg png gif tif bmp等格式图像的加载、数据读写、保存等功能)
- 使用红黑树查找最小n个数,适合处理大数据