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

转载 2016年08月30日 11:15:59
在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()函数进行关闭,否则将一直占用系统资源。

spring-mongodb返回指定字段

spring-mongodb-data 返回指定字段
  • zhanglu1236789
  • zhanglu1236789
  • 2017年03月15日 15:06
  • 3206

用MongoTemplate查询指定字段的正确奥义

这里举一个我个人犯的一个错误,希望看到此博文的人能避免犯同样的错误: 在CompanyInfo这个类中,它其中包含一个List类型的AccountInfo属性。然后好戏开始了,我希望通过BasicD...
  • zhujun_xiaoxin
  • zhujun_xiaoxin
  • 2017年01月12日 15:36
  • 4748

mongodb中查询返回指定字段

在写vue项目调用接口获取数据的时候,比如新闻列表页我只需要显示新闻标题和发表时间,点击每条新闻进入详情页的时候才会需要摘要、新闻内容等关于此条新闻的所有字段。 但其实我所有关于新闻的数据在同一个数...
  • u012086400
  • u012086400
  • 2017年11月28日 11:08
  • 468

Mongodb数据导出到json或csv

使用mongoexport,把Mongodb的数据导出到json或csv
  • G1Apassz
  • G1Apassz
  • 2015年02月15日 20:44
  • 18870

mongotemplate mongodb的各种操作 模糊查询 精确查询 等等

本意是想查查mongo数据库的int类型的like怎么查,但是好像没 解决这个问题。 一. 常用查询: 1. 查询一条数据:(多用于保存时判断db中是否已有当前数据,这里 is...
  • LXB15959168136
  • LXB15959168136
  • 2016年08月19日 18:38
  • 20464

MongoDB 查询超时异常的原因及解决办法

在对超过百万条记录的集合进行聚合操作时,偶尔会发生Read timed out 异常,本文分析了ConnectionTimeOut和SocketTimeOut的区别,并提出该问题的解决办法。 ...
  • asdfsadfasdfsa
  • asdfsadfasdfsa
  • 2017年03月26日 19:33
  • 2916

mongodb 字段验证规则 3.2新功能

https://docs.mongodb.org/manual/core/document-validation/
  • terry_water
  • terry_water
  • 2016年01月28日 14:49
  • 348

[MongoDB]Update更新数据

Update操作只作用于集合中存在的文档。MongoDB提供了如下方法来更新集合中的文档: db.collection.update()db.collection.updateOne() New ...
  • SunnyYoona
  • SunnyYoona
  • 2016年09月02日 23:26
  • 19300

mongodb 批量查询 输出指定字段

本文介绍的是mongodb 批量查询指定输出字段 /** * * @param key * 请求字段 * @param value * ...
  • u011053107
  • u011053107
  • 2014年11月24日 11:27
  • 2777

Projections-Java下MongoDB查询限制返回字段

Projections 类为所有的MongoDB projection操作提供了静态工厂方法. 每个方法都返回Bson类型的一个实例, 可以传递到任何一个需要Projection的方法...
  • u014265212
  • u014265212
  • 2016年11月30日 10:00
  • 1099
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【MongoDB】MongoDB只返回指定的字段的值 和 设定超时项
举报原因:
原因补充:

(最多只允许输入30个字)