【MongoDB】MongoDB只返回指定的字段的值 和 设定超时项
在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()函数进行关闭,否则将一直占用系统资源。
阅读更多
个人分类: MongoDB
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭