类似mybataisPlus的mongoDb的orm

文章介绍了如何通过lambda表达式来封装和简化mongoTemplate的使用,以实现更直观和简洁的查询方式,包括分页查询和复杂条件的构建。作者分享了自己参考mybatisPlus实现的一个初步版本,旨在避免使用复杂的Criteria,提供了一种更友好的MongoDBORM操作方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongoTemplate的lambda写法

1、介绍

Mogo使用简单易懂的lambda操作mongoDb中的集合(Mogo名字乱敲的)

mongoDb对于一般的常用软件来说应该都不陌生了,相信使用过MP(mybatisPlus)的小伙伴都知道lambda形式的操作是多么的爽了,但是mongoTemplate用起来确实很令人脑壳疼,所以脑袋一热就参考了mp做了一个类似的封装,让我自己远离恶心的Criteria,周末肝出来的第一版,比较简陋,但是CRUD都可以正常使用,提供思想,希望有大佬带飞,期待有个好用的Mongo ORM

2、使用说明

初期项目主要有三个模块:

  1. mogo(基础的封装)
  2. mogo-gen (提供的简单版代码生成器)
  3. mogo-web (暴露出去的http测试模块)
基础用法
   /**
     * lambda形式的mongoTemplate用法
     * 分页获取测试数据
     */
    public APiResponsePage<UserInfoResp, Object> queryList(UserPageReq req) {
   
   

        LambdaQueryWrapper<User> query = Wrappers.<User>lambdaQuery()
                .eq(Objects.nonNull(req.getAge()), User::getAge, req.getAge())
                .eq(Objects.nonNull(req.getLoginName()), User::getLoginName, req.getLoginName())
                .eq(Objects.nonNull(req.getPassWord()), User::getPassWord, req.getPassWord())
                .eq(Objects.nonNull(req.getAge()), User::getAge, req.getAge())
                .between((Objects.nonNull(req.getStartTime()) && Objects.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值