关闭

【MongoDB】MongoDB只返回指定的字段的值 和 设定超时项

88人阅读 评论(0) 收藏 举报
分类:
在MongoDB的使用中,我们有时候为了提高效率和减小对内存的占用会指定返回的字段,这样就让只返回指定的字段的值,其他字段的值都不返回,那么这个在MongoDB中有一个特定的查询方式。

mongo的java驱动里提供一些find方法,其中一个find方法参数如下

DBCursor find( DBObject ref , DBObject keys )  
   第一个 ref object for which to search
   第二个 keys fields to return

那么这里ref是指定你要进行查询的条件,如果不限制查询条件可以直接传入一个new BasicDBObject().而keys是指定要返回的字段。那么这个如何使用,下面给出一段实体的代码示例:

BasicDBObject keys = new BasicDBObject();
keys.put("_id", 1);
keys.put("name", 1);
keys.put("age", 1);

DBCursor cursor = mongoTemplate.getCollection("people")
.find(new BasicDBObject(), keys)
.addOption(Bytes.QUERYOPTION_NOTIMEOUT);

这样的话在返回的cursor中可以将其转成people对象,然后只有name和age这两个字段有值,其他的一些信息比如说weight,sex等就都为null。使用起来是不是很方便。

PS:最后的 .addOption(Bytes.QUERYOPTION_NOTIMEOUT) 是为了让这个游标不超时,如果你的数据集比较大你处理的时间比较长时就需要指定这个,否则会中途就突然断掉,因为超时被回收了,使用这个就一定要注意使用的最后一定要调用close()函数进行关闭,否则将一直占用系统资源。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:138次
    • 积分:4
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档