Springboot MongoDB-MongoTemplate使用笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Peng_Hong_fu/article/details/86139802

分页、排序

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;

@ApiModel(description = "分页实体")
@Data
public class Page<T> {

    @ApiModelProperty(value = "总页数")
    private Long totalPage;

    @ApiModelProperty(value = "总记录数")
    private Long totalCount;

    @ApiModelProperty(value = "数据")
    private List<T> data;

    @ApiModelProperty(value = "当前页数")
    private Long currentPage;
}


        Query query = new Query();
        Criteria criteria = new Criteria();
        if ("" != prizeName) {
            criteria.and("prizeName").is(prizeName);
        }
        if ("" != prizeCode) {
            criteria.and("prizeCode").is(prizeCode);
        }
        query.addCriteria(criteria);
        //query.with(new Sort(Sort.Direction.ASC, "name")); //按name进行 升序
        //默认显示10页
        query.skip((currentPage - 1) * 10).limit(10);

        List<ActivityPrize> activityPrizeList = mongoTemplate.find(query, ActivityPrize.class);
        //long count = mongoTemplate.count(query, Account.class);
        long count = activityPrizeList.size();

        /**
         * 封装分页返回数据
         */
        Page<ActivityPrize> page = new Page<>();
        page.setData(activityPrizeList);
        page.setTotalCount(count);
        page.setTotalPage(count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
        page.setCurrentPage(Long.valueOf(pageSize));

当没有任何条件时,查出所以文档数据

批量

 @Test
    public void testAccount() {
        BulkOperations ops = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, Account.class);
        List<Account> list = new ArrayList<>();
        for (int i = 0; i < 50; i++) {
            Account account = new Account();
            account.setUserName("admin" + i);
            account.setPassWord("password");
            list.add(account);
        }
        ops.insert(list);
        ops.execute();

    }

文档嵌套对象

public class Account{
	...
 	private Set<Role> roles = new HashSet<>();
}
@Test
    public void test9() {
        Query query = new Query();
        Criteria criteria = new Criteria();
        criteria.and("_id").is("364FF769E55A419D8A0F3712C84291AF").and("roles.name").is("admin");
        query.addCriteria(criteria);
        log.debug("result:{}", mongoTemplate.find(query, Account.class));

        //Update update =  Update.update("roles.$.name","admin1");//修改匹配的第一个
        Update update = Update.update("roles.$[].name", "admin1");//修改匹配的所有

        UpdateResult result = mongoTemplate.updateMulti(query, update, Account.class);
        log.debug("UpdateResult:{}", result1);
    }

猜你喜欢

转载自blog.csdn.net/Peng_Hong_fu/article/details/86139802