springboot使用mongodb查询的时候会遇到服务器出口带宽压力大的情况,原因可能是查询mongodb的时候把整个对象给拖下来了,事实上我们只需要其中的某些字段,多余的字段返回的话会给小水管的带宽加上压力,也就是说我们的mongodb查询时只需要返回某些字段。
看了很多人的各种文章感觉要么是哪里抄袭的要么是哪里拷贝的,根本不靠谱,自己去查询了下官方文档,实现方法很简单:直接使用mongoTemplate来查询,只返回主键,name,status字段。(主键是默认返回的)
Query query = new Query();
query.addCriteria(Criteria.where("status").is(3));
query.skip(skipNumber);
query.limit(pageSize);
query.fields().include("name").include("status");
return mongoTemplate.find(query, CompanyInformation.class);
网上流传比较多的另外一种方法:
BasicDBObject dbObject = new BasicDBObject();
dbObject.put("id", "123");
dbObject.put("name", "haha");
//指定返回的字段
BasicDBObject fieldsObject = new BasicDBObject();
fieldsObject.put("id", true);
fieldsObject.put("name", true);
fieldsObject.put("age", true);
Query query = new BasicQuery(dbObject.toJson(), fieldsObject.toJson());
List<JavaEntity> list= mongoTemplate.find(query, JavaEntity.class, "collectionName");