使用java MongoTemplate对象完成mongoDB的指定条件,排序,分页查询

本文介绍了如何在SpringBoot项目中使用MongoDB,包括依赖导入、业务层自动装配MongoTemplate,以及如何构建复杂的查询条件,如匹配特定字段值、排序和分页,以获取数据库中的数据。
摘要由CSDN通过智能技术生成

实现步骤:

1:导入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
    <version>自定义版本号</version>
</dependency>

2:业务层自动装配MongoTemplate对象

 @Resource
 private MongoTemplate mongoTemplate;

3:功能实现

        //查询条件的集合(用来存储查询的所有条件)
        List<AggregationOperation> operations = new ArrayList<>();

        //查询commentBlogId列为“123123”并且commentLevelStatus列为“1”的数据
        Criteria criteria =         Criteria.where("commentBlogId").is("123123").where("commentLevelStatus").is(1);
        operations.add(Aggregation.match(criteria));

        //根据commentCreateTime降序查询
        operations.add(Aggregation.sort(Sort.Direction.DESC,"commentCreateTime"));

        //分页查询(使用skip 跳过数据,如果数据量庞大则影响性能问题)
        operations.add(Aggregation.skip( (queryAllComment.getPageNo() -1 ) * queryAllComment.getPageSize()));//设置从哪条数据开始查询(即设置页码)
        operations.add(Aggregation.limit(queryAllComment.getPageSize()));//设置每页显示条数

        Aggregation aggregation = Aggregation.newAggregation(operations);
        //将上面的查询条件进行填充并执行
        //下面三个参数分别为:自己创建的查询条件,mongoDB中被查询集合的名称,结果集被自动装配的类。
        //最终得到结果集:results
        AggregationResults<Comment> results = mongoTemplate.aggregate(aggregation, "comment", Comment.class);

        if(ObjectUtil.isEmpty(results)){
            return null;
        }
        //数据被存放在results.getMappedResults()里面
        return RestResponse.success(results.getMappedResults());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>