mongoTemplate的方法和update()

   日期:2020-04-30     浏览:217    评论:0    
核心提示:1.引言mongoTemplate提供了许多的方法,许多的类似的方法,刚开始不知道使用哪一种最好,现数据库

1.引言

mongoTemplate提供了许多的方法,许多的类似的方法,刚开始不知道使用哪一种最好,现在,我把他们整理如下,方便大家选择使用。

2.常用方法

    
    public void mongoTemplateSample(FormDataApproval formDataApproval) {
        Query query = new Query();
        query.addCriteria(Criteria.where("_id").is(formDataApproval.getId()).and("tenant_id").is(formDataApproval.getTenantId()));

        Update update = new Update();
        update.set("process_id", formDataApproval.getProcessId());

        List<FormDataApproval> list = new ArrayList<>();
        list.add(formDataApproval);

        
        mongoTemplate.upsert(query, update, FormData.class, "formData");
  
        
        // 无实际意义,不推荐使用
        mongoTemplate.update(FormDataApproval.class);
        mongoTemplate.updateFirst(query, update, FormDataApproval.class, "formDataApproval");
        mongoTemplate.updateMulti(query, update, FormDataApproval.class, "formDataApproval");
        mongoTemplate.findAndModify(query, update, FormDataApproval.class, "formDataApproval");

        
        mongoTemplate.find(query, FormDataApproval.class, "formDataApproval");
        mongoTemplate.findOne(query, FormDataApproval.class, "formDataApproval");
        mongoTemplate.findAll(FormDataApproval.class, "formDataApproval");
        mongoTemplate.findById(formDataApproval.getId(), FormDataApproval.class, "formDataApproval");

        
        mongoTemplate.remove(query, FormDataApproval.class, "formDataApproval");
        mongoTemplate.findAndRemove(query, FormDataApproval.class, "formDataApproval");
        mongoTemplate.findAllAndRemove(query, FormDataApproval.class, "formDataApproval");

        
        mongoTemplate.save(formDataApproval, "formDataApproval"); // 同upsert(),没有新增,有修改
        mongoTemplate.insert(formDataApproval, "formDataApproval");
        mongoTemplate.insertAll(list);
    }

3.批量修改

    
    @Override
    public void updateFormDatas(List<FormData> formDataList) {

        if (CollectionUtils.isEmpty(formDataList)) {
            return;
        }

        BulkOperations operations = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, Const.COLLECTION_FORM_DATA);
        List<Pair<Query, Update>> list = new ArrayList<>();

        for (FormData formData : formDataList) {

            Query query = new Query();
            query.addCriteria(Criteria.where("_id").is(formData.getId()).and("tenant_id").is(formData.getTenantId()));
            Update update = new Update();
            update = mongoUtil.getUpdateFormDataAll(formData, update);
            Pair<Query, Update> pair = Pair.of(query, update);
            list.add(pair);
        }

        operations.updateMulti(list);
        operations.execute();
    }

4.其他方法

    
    public void mongoTempalteAsOriginal() {

        // 查询该集合中的所有文档
        MongoCollection<Document> formDataApprovalDocument = mongoTemplate.getCollection("formDataApproval");

        // 新增
        formDataApprovalDocument.insertOne();
        formDataApprovalDocument.insertMany();

        // 删除
        formDataApprovalDocument.deleteOne();
        formDataApprovalDocument.deleteMany();
        formDataApprovalDocument.findOneAndDelete();

        // 修改
        formDataApprovalDocument.updateOne();
        formDataApprovalDocument.updateMany();
        formDataApprovalDocument.findOneAndUpdate();
        formDataApprovalDocument.replaceOne();
        formDataApprovalDocument.findOneAndReplace();

        // 查询
        formDataApprovalDocument.find();

        // 获取集合name
        mongoTemplate.getCollectionName(FormDataApproval.class);
    }
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服