概要

mongodb是一个非关系型数据库

整体架构流程

mongodb依赖

      <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
            <version>3.1.1</version>
        </dependency>

连接数据库配置

spring:
  data:
    mongodb:
      uri: mongodb://zyy_0313:123456@192.168.1.6:27017/zyy_0313 ##密码验证
      uri: mongodb://192.168.1.6:27017/zyy_0313 

动态参数查询数据

public class CategoryValueRepository {
    protected final MongoTemplate mongoTemplate;
    /**查询排序最大值**/
    public Integer getNaxByDatabaseId(String collectionName){
        Criteria criteria = new Criteria();
        Query query = new Query(criteria);
        query.with(Sort.by(Sort.Order.desc(EnvisionType.sort)));
        Map<String,String> map =mongoTemplate.findOne(query, Map.class, collectionName);//表名
        int sort =0;
        if (EmptyUtil.isNotEmpty(map)){
            sort = Integer.parseInt(String.valueOf(map.get(EnvisionType.sort)));
        }
        return sort;
    }
/**批量新增**/
    public void addCategoryValue(List<Map<String,Object>> maps,String collectionName){
        mongoTemplate.insert(maps, collectionName);
    }
    /**单个新增**/
    public void addCategoryValue(Map<String,Object> map,String collectionName){
        mongoTemplate.insert(map, collectionName);
    }
    /**删除某一列**/
    public void unset(String name,String collectionName){
        Criteria criteria = new Criteria();
        Query query = new Query(criteria);
        Update update = new Update();
        update.unset(name);
        mongoTemplate.updateMulti(query,update, collectionName);
    }
     /**修改某一列的字段**/
    public void rename(String oldName,String newName,String collectionName){
        Criteria criteria = new Criteria();
        Query query = new Query(criteria);
        Update update = new Update();
        update.rename(oldName, newName);
        mongoTemplate.updateMulti(query,update, collectionName);
    }
     /**根据ID修改**/
    public void update(String id,Map<String,Object> map,String collectionName){
        Criteria criteria = new Criteria();
        criteria.and(EnvisionType.id).is(id);
        Query query = new Query(criteria);
        Update update = new Update();
        map.remove(EnvisionType.id);
        map.keySet().forEach(x->{update.set(x,map.get(x));});
        mongoTemplate.updateMulti(query,update, collectionName);
    }
     /**根据条件查询一条数据**/
    public Map<String,Object> getByCondition(Map<String,Object> map,String collectionName){
        Criteria criteria = new Criteria();
        for (String x : map.keySet()) {
            if (EmptyUtil.isNotEmpty(map.get(x))){
                criteria.and(x).is(map.get(x));
            }else {
                criteria.and(x).in("",null);
            }
        }
        Query query = new Query(criteria);
        query.fields().exclude(EnvisionType._id);
        return mongoTemplate.findOne(query,Map.class, collectionName);
    }
     /**根据条件查询数据集合**/
    public List<Map<String,Object>> getByConditions(Map<String,Object> map,String collectionName){
        Criteria criteria = new Criteria();
        for (String x : map.keySet()) {
            if (EmptyUtil.isNotEmpty(map.get(x))){
                criteria.and(x).is(map.get(x));
            }else {
                criteria.and(x).in("",null);
            }
        }
        Query query = new Query(criteria);
        query.fields().exclude(EnvisionType._id);
        query.with(Sort.by(Sort.Order.asc(EnvisionType.sort)));
        return copy(mongoTemplate.find(query,Map.class, collectionName));
    }
     /**根据ID查询**/
    public Map<String,Object> getById(String id,String collectionName){
        Criteria criteria = new Criteria();
        criteria.and(EnvisionType.id).is(id);
        Query query = new Query(criteria);
        query.fields().exclude(EnvisionType._id);
        return mongoTemplate.findOne(query,Map.class, collectionName);
    }
    /**根据ID删除**/
    public void delete(String id,String collectionName){
        Criteria criteria = new Criteria();
        criteria.and(EnvisionType.id).is(id);
        Query query = new Query(criteria);
        mongoTemplate.remove(query, collectionName);
    }
     /**批量删除**/
    public void delete(List<String> ids,String collectionName){
        Criteria criteria = new Criteria();
        criteria.and(EnvisionType.id).in(ids);
        Query query = new Query(criteria);
        mongoTemplate.remove(query, collectionName);
    }
    /**删除文档**/
    public void delTable(String collectionName){
        mongoTemplate.dropCollection(collectionName);
    }
   
    private List<Map<String,Object>> copy(List<Map>maps){
        if (EmptyUtil.isNotEmpty(maps)){
            List<Map<String,Object>> mapList = new ArrayList<>();
            maps.forEach(x-> mapList.add(x));
            return mapList;
        }
        return Collections.emptyList();
    }}

小结

https://blog.csdn.net/efew212efe/article/details/124524863
mongodb(springboot操作):https://www.jianshu.com/p/744bee7b6094

更多推荐