Java 对mongodb数据库进行修改

这篇博客主要介绍了如何使用Java语言在MongoDB数据库中对JSON数据进行追加操作,以实现类似添加产品评论的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在json数据中,对数据进行追加,类似于追加产品评论

public String updateComment(Integer accountId,String _id,String goodsDescripe){
    List list = new ArrayList();
    Map map  = new HashMap();
    DBCollection dbCollection = mongoTemplate.getCollection("product_comment");
    if(_id!=null){
        BasicDBObject query2 = new BasicDBObject();
	    //new ObjectId(_id):是将String类型的id转换成Object
        query2.put("_id", new ObjectId(_id));
		//根据id查询语句
        DBObject dbObject = dbCollection.findOne(query2);
        if(dbObject!=null){
            BasicDBObject basicDBObject = (BasicDBObject)dbObject;
			//获取要修改的键里面的内容
            String replies1 = basicDBObject.getString("replies");
            Integer orderMainId = basicDBObject.getInt("orderId");
			//跨微服务获取内容
            String url = "http://QZH-ORDER/orderMain/getOrderMainId?orderMainId={orderMainId}";
            ResponseEntity<QzhResult> responseEntity2 = restTemplate.getForEntity(url, QzhResult.class, orderMainId);
            if(responseEntity2.getBody().getStatus()==200){
                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                //当前时间
                map.put("createTime",df.format(new Date()));
              
            }
			//将要修改的内容放入map中
            if(StringUtils.isNotEmpty(goodsDescripe)){
                map.put("goodsDescripe",goodsDescripe);
            }
            list.add(map);
          /*  JSONArray jsonArray = JSONObject.parseArray(replies1);*/
            JSONArray jsonArray = JSONArray.parseArray(replies1);
			//将内容进行拼接
            if(list.size()>0){
                jsonArray.add(list.get(0));
            }
            BasicDBObject query = new BasicDBObject();
            BasicDBObject doc = new BasicDBObject();
            query.append("replies",jsonArray);
            doc.put("$set", query);
            //根据id修改语句
            dbCollection.update(query2,doc,false,true);
        }
        return "评论成功";
    }else{
        return "评论失败";
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值