Springboot mongodb

 package com.ruoyi.common.mongodb;

import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "emailcount")
public class EmailCount {
    private String mykey;
    private String uid;

    public String getMykey() {
        return mykey;
    }

    public void setMykey(String mykey) {
        this.mykey = mykey;
    }

    public String getUid() {
        return uid;
    }

    public void setUid(String uid) {
        this.uid = uid;
    }
}

 查
 
 Query  query = new Query();
        query.addCriteria(Criteria.where("uid").is(uid));
        query.addCriteria(Criteria.where("mykey").is(DateUtils.getDate()));
        EmailCount mgt = mongoTemplate.findOne(query, EmailCount.class);
        
全文索引
TextCriteria criteria = TextCriteria.forDefaultLanguage()
  .matchingAny("coffee", "cake");

Query query = TextQuery.queryText(criteria)
  .sortByScore()
  .with(new PageRequest(0, 5));

List<CookingRecipe> recipes = template.find(query, CookingRecipe);

增改

 Query query = new Query();
        String mykey = DateUtils.getDate();
        query.addCriteria(Criteria.where("uid").is(uid));
        query.addCriteria(Criteria.where("mykey").is(mykey));
        Update update = new Update().set("mykey", mykey);
        mongoTemplate.upsert(query, update, EmailCount.class);

 

list 批量更新

  public Boolean doBatch(List<Map> docs, String systemId, int markDate, int start, int end,int updateType) {

        systemId = systemId.toUpperCase();
        Boolean flag = true;

        try {
            List<BatchUpdateOptions> list = new ArrayList<>();
            for (int i = start; i < end; i++) {
                Map<String, String> map = docs.get(i);
                Update update = new Update();
                update.setOnInsert("WF_DOCCREATED", DateUtils.getNow());
                update.setOnInsert("SYSTEMID", map.get("SYSTEMID"));
                update.setOnInsert("PROCESSNAME", map.get("PROCESSNAME"));
                update.setOnInsert("PROCESSID", map.get("PROCESSID"));
                update.setOnInsert("DOCUNID", map.get("DOCUNID"));
                update.setOnInsert("APPID", map.get("APPID"));
                update.setOnInsert("KEYWORDS", map.get("KEYWORDS"));
                update.set("WF_LASTMODIFIED", DateUtils.getNow());
                update.set("MARKDATE", markDate);
                for (String k : mongodbKey) {
                    String v = map.get(k);
                    update.set(k, v);
                }
                Query query2;
                if(updateType==1){
                    query2 = Query.query(Criteria.where("SYSTEMID").is(map.get("SYSTEMID")).and("PROCESSID").is(map.get("PROCESSID")).and("DOCUNID").is(map.get("DOCUNID")).and("TIMESTAMP").lte(map.get("TIMESTAMP")));
                }else {
                     query2 = Query.query(Criteria.where("SYSTEMID").is(map.get("SYSTEMID")).and("PROCESSID").is(map.get("PROCESSID")).and("DOCUNID").is(map.get("DOCUNID")));
                }
                BatchUpdateOptions batchUpdateOptions = new BatchUpdateOptions(query2, update, true, false);
                list.add(batchUpdateOptions);
            }
            int allusertodo = mongoService.batchUpdate("allusertodo", list);
        } catch (Exception e) {
            flag = false;
            String errorMsg = Tools.getErrorMsgFromException(e);
            logger.error(systemId + ":" + errorMsg);
            String part="務";
            if(updateType==1){
                part="辦";
            }
            LogMsg logMsg = new LogMsg("123",part , "updateBat", 0, systemId + ":" +errorMsg);
            messageService.sendSysLog(logMsg);
        }
        return flag;
    }
  private int doBatchUpdate(String collName, List<BatchUpdateOptions> options, boolean ordered) {
        DBObject command = new BasicDBObject();
        command.put("update", collName);
        List<BasicDBObject> updateList = new ArrayList<BasicDBObject>();
        for (BatchUpdateOptions option : options) {
            BasicDBObject update = new BasicDBObject();
            update.put("q", option.getQuery().getQueryObject());
            update.put("u", option.getUpdate().getUpdateObject());
            update.put("upsert", option.isUpsert());
            update.put("multi", option.isMulti());
            updateList.add(update);
        }
        command.put("updates", updateList);
        command.put("ordered", ordered);
        Document document = mongoTemplate.getDb().runCommand((Bson) command);
        Object n = document.get("n");
        if (n.getClass() == Integer.class) {
            return (Integer) n;
        }
        return Integer.parseInt(String.valueOf(n));
    }

查詢mongodb狀態

 public Document serveStatus() {
        DBObject command = new BasicDBObject();
        command.put("serverStatus", 1);
        Document document = mongoTemplate.getDb().runCommand((Bson) command);
        return document;
    }


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章