栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

couldn't connect to host

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

couldn't connect to host

一、新建实体类 1、新建评论类
package com.hq.mongodb.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;


@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class Comment {
    
    private Integer id;

    
    private String content;

    
    private String grage;

    
    private String userId;

    
    private Date createTime;

    
    private List replyList;
}
2、新建回复类
package com.hq.mongodb.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class Reply {
    @Id
    private String id;

    
    private String replyId;

    
    private String commentId;

    
    private String content;

    
    private Integer userId;

    
    private String createTime;
}
二、crud 1、添加
Comment comment = mongoTemplate.findById("621f89cb80c07d03b92835ce", Comment.class);
List list = new ArrayList<>();
if (comment.getReplyList() != null) {
    list = comment.getReplyList();
}

Reply reply = new Reply();
reply.setContent("回复内容");
reply.setId(System.currentTimeMillis()+"");

list.add(reply);
comment.setReplyList(list);
mongoTemplate.save(comment, "comment");
2、删除
Update update = new Update();

//需要删除的数据
update.pull("replyList",new BasicDBObject("_id","1647572876015"));

//先根据条件查询到父集合对应的数据,再根据对应集合属性的键进行查找
Query query = new Query(Criteria.where("_id").is("621f89cb80c07d03b92835ce").and("replyList.id").is("1647572876015"));

//执行
UpdateResult result = mongoTemplate.updateMulti(query, update, Comment.class, "comment");
3、修改
Update update = new Update();

//需要修改的值(键名必须是子集合的key.$.需要修改的key)
update.set("replyList.$.content", "ss");

//先查询出对应的父集合,然后根据对应子集合条件查询
Query query = new Query(Criteria.where("userId").is(1).and("replyList").elemMatch(Criteria.where("id").is("1647572876015")));

UpdateResult result = mongoTemplate.updateMulti(query, update, Comment.class, "comment");
System.out.println(result.getModifiedCount());
4、查询
Aggregation aggregation=Aggregation.newAggregation(
		//先查询父集合
        Aggregation.match(Criteria.where("_id").is("621f89cb80c07d03b92835ce")),
        //拆分子集合字段
        Aggregation.unwind("replyList"),
        //再根据子集合条件进行查询
        Aggregation.match(Criteria.
                where("replyList.content").is("回复内容"))
);

//执行查询,泛型只能是JSonObject
AggregationResults reminds = mongoTemplate
        .aggregate(aggregation, "comment", JSONObject.class);
List mappedResults = reminds.getMappedResults();

List list=new ArrayList<>();
if(mappedResults!=null&&mappedResults.size()!=0){
	//依次添加
    for (JSonObject mappedResult : mappedResults) {
       list.add(JSONObject.parseObject(mappedResult.getJSonObject("replyList").toJSonString(),Reply.class));
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773191.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号