mongodb的依赖导入以及连接配置请自行配置,此文档环境已经搭建完成。
1,首先要有mongodb的Document对应的实体类,标注@Document注解
//collection="zt_message_carousel"即为mongodb库中的文档名字 @Document(collection="zt_message_carousel") public class CarouselInfo { //创建索引 @Indexed(unique = true) @Id private String id; private String type; private String title; private String clickUrl; private String photoUrl; private Integer platformId; private String systemId; private Integer sort; private int state; private String creator; private Date createTime; private Date updateTime; }
//添加操作比较简单,创建对象,设置参数,调用api即可 CarouselInfo info = new CarouselInfo(); //设置参数 info.setId(UUIDUtil.getUuid()); info.setSystemId(params.getSystemId()); info.setPlatformId(params.getPlatformId()); info.setTitle(params.getTitle()); info.setType(params.getType()); info.setClickUrl(params.getClickUrl()); info.setCreator(params.getCreator()); info.setPhotoUrl(params.getPhotoUrl()); info.setCreateTime(new Date()); //调用方法,完成添加,并返回添加成功的数据 CarouselInfo carouselInfo = mongoTemplate.save(info);
//创建查询 Query query = new Query(); //设置条件 Criteria criteria = new Criteria(); List<String> list = Arrays.asList(ids.split(",")); criteria.and("systemId").is(systemId); criteria.and("platformId").is(platformId); //这里用的是in,也可以是ID,删除一条,灵活使用 criteria.and("id").in(list); query.addCriteria(criteria); //调用方法,DeleteResult中可以获取到删除的条数 DeleteResult remove = mongoTemplate.remove(query, CarouselInfo.class);
//创建查询,主要是用来定位要修改的对象 Query query = new Query(); Criteria criteria = new Criteria(); criteria.and("systemId").is(params.getSystemId()).and("platformId").is(params.getPlatformId()).and("id").is(params.getId()); query.addCriteria(criteria); //创建Update,修改设置,给查询到的对象,对应的字段设置新值,和sql异曲同工 Update update = new Update().set("title", params.getTitle()).set("type", params.getType()).set("photoUrl", params.getPhotoUrl()).set("updateTime",new Date()); //执行修改操作,返回修改成功的条数 UpdateResult res = mongoTemplate.updateFirst(query, update, CarouselInfo.class);
//这里是把查询条件写在了方法内,也可提取出来,也可以使用find()方法,返回的就是一个List集合 CarouselInfo info = mongoTemplate.findOne(new Query(Criteria.where("systemId").is(systemId).and("platformId").is(platformId).and("id").is(id)), CarouselInfo.class);
//创建查询,查出此条件下,总记录数 Query query = new Query(); Criteria criteria = new Criteria(); criteria.and("systemId").is(params.getSystemId()); criteria.and("platformId").is(params.getPlatformId()); if (StringUtils.isNotBlank(params.getTitle())) { criteria.and("title").is(params.getTitle()); } if (StringUtils.isNotBlank(params.getType())) { criteria.and("type").is(params.getType()); } if (params.getState() != null) { criteria.and("state").is(params.getState()); } query.addCriteria(criteria); int count = mongoTemplate.find(query, CarouselInfo.class).size(); // 分页查询 params.setCurPage(params.getCurPage() == null ? PageParameter.DEFAULT_CURR_PAGE : params.getCurPage()); params.setPageSize(params.getPageSize() == null ? PageParameter.DEFAULT_PAGE_SIZE : params.getPageSize()); //此处为第几页,从第几条开始查,公式和sql一样,根据业务自行设置 query.skip((params.getCurPage() - 1) * params.getPageSize()); //每页条数 query.limit(params.getPageSize()); //调用find(),查出符合条件的数据 List<CarouselInfo> carouselInfos = mongoTemplate.find(query, CarouselInfo.class);