mongo+springcloud 查询返回指定的‘字段’

本文探讨在使用MongoDB和SpringCloud集成时,如何查询并返回指定的字段。作者尝试使用field方法的include和exclude,但由于实体类反射原理导致未能成功。最终,作者通过使用原始MongoDB语句解决了问题,发现框架可能不是最佳解决方案。
摘要由CSDN通过智能技术生成

面向度娘,查询解法


公司项目最近需要用到mongo,没有人用过。没办法,只能面向百度实践了。在项目业务中,需要准确返回指定的字段。天真的我按照mysql的思路去想,结果却忽略了mongo是非关系数据库。 找度娘试了几种办法,都没有达到我想要的效果。案例之后奉上。

尝试中

  1. 尝试使用field方法.include/返回 exclude/不返回 ,结果没有达到我想要的效果 。 感觉是因为find(query,Jxdjxx.class) 实体类的原因.有多余字段值,毕竟这里利用了反射原理 重新设置新的实体类无意义,因为指定返回字段是不固定的 总之无法达到我想要的效果

尝试fields的include方法
结果返回值不只是指定的字段.就很麻烦

  1. 原始语句

最后偶然间得到了一本秘籍!!!原始的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": ""
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值