公司项目最近需要用到mongo,没有人用过。没办法,只能面向百度实践了。在项目业务中,需要准确返回指定的字段。天真的我按照mysql的思路去想,结果却忽略了mongo是非关系数据库。 找度娘试了几种办法,都没有达到我想要的效果。案例之后奉上。
尝试中
- 尝试使用field方法.include/返回 exclude/不返回 ,结果没有达到我想要的效果 。 感觉是因为find(query,Jxdjxx.class) 实体类的原因.有多余字段值,毕竟这里利用了反射原理 重新设置新的实体类无意义,因为指定返回字段是不固定的 总之无法达到我想要的效果
- 原始语句
最后偶然间得到了一本秘籍!!!原始的mongo语句。类似于jdbc。(之前试用的都是mongtemplate)框架果然还是不够香啊,也有可能是自己还没有找对姿势。
这里的id是因为mong默认id为objectId 保留有dtae时间值跟timestamp毫秒值
`{
"_id": {
"date": "2021-02-20 16:32:27",
"timestamp": 1613809947
},
"hbbsm": "1-1231143",
"sbsyzdwlxfs": "123321123321"
},`
附上代码部分:
1.1_代码
Query query = new Query();
query.fields().include("hbbsm");
query.fields().include("sbsyzdw");
query.fields().include("sbsyzdwlxfs");
query.fields().exclude("id");
List<Jxdjxx> jxdjxxes = mongoTemplate.find(query, Jxdjxx.class);
1.2_结果
{
"attachdescription": "",
"badjlrry": "",
"badjlrrysjh": "",
"bsmffsj": "",
"bsmlqm": ""