mongodb spring 添加数组嵌套数据

mongodb spring 添加数据
 @Autowiredprivate MongoTemplate mongoTemplate;/**
collectionName:为mongodb 表数据的名字
dictOrg 为我自己业务里的查询条件
result 为要入的数据
date  为我自己业务里需要的时间日期
**/private void setData(String collectionName,DictOrg dictOrg, JSONObject result,String date){Query query = Query.query(Criteria.where("orgid").is(dictOrg.getOrgid()).and("orgdata.date").is(date));//构建查询query if(!(mongoTemplate.exists(query, collectionName))){   //没有则插入,有则不做任何操作Query query1 = Query.query(Criteria.where("orgid").is(dictOrg.getOrgid()));//构建查询queryif(mongoTemplate.exists(query1,collectionName)){  // 如果有这个机构 没有这个日期,将新的日期数据添加进去Query query2 = Query.query(Criteria.where("orgid").is(dictOrg.getOrgid()));Update update = new Update();update.addToSet("orgdata", result.getJSONArray("orgdata").get(0)); mongoTemplate.upsert(query2, update,collectionName);}else{mongoTemplate.insert(result, collectionName);  //没有插入,有则不做任何操作}}

mongodb 格式为:

{"_id": ObjectId("6139c0b635f9055c73a7eda8"),"orgid": "1","orgname": "test","orgdata": [{"date": "20210901","data": {"incomeDay": "59.99","incomeSameDay": "57.15","incomeYearOnYearDay": "5.0","incomeZYDay": "26.16"},"detailData": ""},{"date": "20210902","data": {"incomeDay": "59.99","incomeSameDay": "57.15","incomeYearOnYearDay": "5.0","incomeZYDay": "26.16"},"detailData": ""}]
}

如果orgid不存在则插入一条数据,如果存在,看其相应的日期有没有,没有则在orgdata数里添加新的日期数据


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部