问题
最近在项目中使用了MongoDB,遇到一个问题是如何查询返回指定的字段
百度和谷歌中文搜索了各种答案没一个靠谱的
就说说百度上流传最广的一个互相抄袭的博客内容是这么写的
QueryBuilder queryBuilder = new QueryBuilder();
queryBuilder.or(new BasicDBObject("onumber", "002"), new BasicDBObject("cname","zcy1"));
BasicDBObject fieldsObject=new BasicDBObject();
fieldsObject.put("onumber", 1);
fieldsObject.put("cname", 1);
Query query=new BasicQuery(queryBuilder.get(),fieldsObject);
这个答案显然已经不合时宜,现在BasicQuery已经不能这样构造了。
解决
最后还是在StackOverflow搜到了准确答案。
Query query = new Query();
query.fields().include("path"); //包含该字段
query.fields().exclude("salary");//不包含该字段
参考
https://stackoverflow.com/questions/32108953/how-to-return-only-specific-fields-for-a-query-in-spring-data-mongodb
https://stackoverflow.com/questions/16739210/spring-data-mongo-query-field-parameters
https://docs.spring.io/spring-data/mongodb/docs/2.1.6.RELEASE/reference/html/#mongodb-getting-started