MongoTemplate進行增刪改查

轉載自:https://blog.csdn.net/sinat_35821285/article/details/83511203#commentBoxspring

1.首先pom.xmlsql

<!-- springboot 整合 mongodb   -->
   <dependency> 
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
        <version>2.0.0.RELEASE</version>
   </dependency>

引入mongodb

@Autowired
private MongoTemplate mongoTemplate;

插入數據(能夠是一個對象,或者是一個對象集合)springboot

List<SysUser> userList = new ArrayList<>();
userList.add(new SysUser(11,"1","白小飛","18888888888"));
userList.add(new SysUser(9,"1","白敬亭","13333333333"));
userList.add(new SysUser(5,"1","林宥嘉","14444444444"));
userList.add(new SysUser(6,"1","彭于晏","15555555555"));
userList.add(new SysUser(7,"1","周杰倫","16666666666"));
mongoTemplate.insert(userList, "userList");
SysUser sysUser = new SysUser(12,"1","黃小飛","18888888888");
mongoTemplate.insert(sysUser, "userList");

當存入的第一個數據類型是SysUser,名字是userList的時候,第二個存入數據就必須是SysUser類型的數據。spring-boot

查詢數據spa

查詢單個數據和多個數據,模糊查詢.net

//查詢單個數據
    public SysUser findMongo() {
        Pattern pattern = Pattern.compile("^.*8$",Pattern.CASE_INSENSITIVE);
        Query query = new Query(Criteria.where("phone").regex(pattern));
        SysUser findOne = mongoTemplate.findOne(query,SysUser.class,"userList");
        return findOne;
    }
    //查詢多個數據
    public List<SysUser> findListMongo() {
        //模糊查詢以 ^開始 以$結束 .*至關於Mysql中的%
        Pattern pattern = Pattern.compile("^1.*$",Pattern.CASE_INSENSITIVE);
        Query query = new Query(Criteria.where("phone").regex(pattern));
//        Query query = new Query(Criteria.where("status").is("1"));
//        query.with(new Sort(Direction.DESC,"phone"));  //按手機號碼倒序
         List<SysUser> findList = mongoTemplate.find(query,SysUser.class,"userList");
        return findList;
    }

 

//多個條件查詢(格式2)
public List<SysUser> findList2(){
    Criteria criteria = new Criteria();
    criteria.and("name").is("秦嵐");
    criteria.and("phone").is("12222222222");
    Query query = new Query(criteria);
    List<SysUser> findList = mongoTemplate.find(query, SysUser.class,"userList");
    return findList;
}
//一個模糊關鍵字匹配多個字段
    public List<SysUser> findList3(){
            
        Pattern pattern = Pattern.compile("^.*222$",Pattern.CASE_INSENSITIVE);
        Criteria  criteria = new Criteria();
        //phone以222結尾的 或者 name以222結尾的  
        criteria.orOperator(Criteria.where("phone").regex(pattern),
        Criteria.where("name").regex(pattern));
        //同時知足 phone以222結尾的,和name以222結尾的
       criteria.andOperator(Criteria.where("phone").regex(pattern),
        Criteria.where("name").regex(pattern));
            
        Query query = new Query(criteria);
        List<SysUser> find = mongoTemplate.find(query, SysUser.class,"userList");
        return find;
    }

更新。code

//更新
public int update() {
    Query query = new Query(); 
    query.addCriteria(Criteria.where("_id").is(1));  //_id區分引號 "1"和1
    Update update = Update.update("name", "zzzzz");
//    WriteResult upsert = mongoTemplate.updateMulti(query, update, "userList"); //查詢到的所有更新
//    WriteResult upsert = mongoTemplate.updateFirst(query, update, "userList"); //查詢更新第一條
    WriteResult upsert = mongoTemplate.upsert(query, update, "userList");      //有則更新,沒有則新增
    return upsert.getN();       //返回執行的條數
    }

 

//添加內嵌文檔數據(有則直接加入,沒有則進行新增)
    public int update1() {
        Query query = Query.query(Criteria.where("_id").is("11"));
        SysUser user = new SysUser(1,"1","lisi","19999998745");
        Update update = new Update();
        update.addToSet("users", user);
        WriteResult upsert = mongoTemplate.upsert(query, update, "userList");
        return upsert.getN();
    }

 

//修改內嵌文檔中數據
public int update2() {
    //查詢_id爲11而且其中userList文檔的_id爲1的
    Query query = Query.query(Criteria.where("_id").is("11").and("users._id").is(1));
    Update update = Update.update("users.$.name", "zhangsan");
    WriteResult upsert = mongoTemplate.upsert(query, update, "userList");
    return upsert.getN();
}

 

//刪除內嵌文檔中數據
    public int delete() {
    //查詢_id爲11而且其中userList文檔的_id爲1的
    Query query = Query.query(Criteria.where("_id").is("11").and("users._id").is(1));
    Update update = new Update();
    update.unset("users.$");
    WriteResult upsert = mongoTemplate.updateFirst(query, update, "userList");
    return upsert.getN();
}

查詢多個數據刪除以後是這樣的:xml

相關文章
相關標籤/搜索