java更新mongodb数组

mac2024-03-16  24

1、普通更新 DBObject queryCondition = new BasicDBObject(); queryCondition.put("patient_id", patientId); DBObject setValue = new BasicDBObject(); //mongo存储路径 /see_face_image/1515477094127/111.jpg String savePath = imgTypeUrl.substring(imgTypeUrl.indexOf(DirectoryEnum.img.toString()) + DirectoryEnum.img.toString().length()).replace(File.separator, "/"); setValue.put(imgType, savePath); DBObject upsertValue = new BasicDBObject("$set", setValue); /** * 后面两个参数含义分别是: * 若所更新的数据没有,则插入 * ,同时更新多个符合条件的文档(collection) */ mongoTemplate.getCollection(DB_DOCUMENT).update2(queryCondition, upsertValue, true, true);

2、更新数组里面符合条件的数组元素

//获取某个集合 MongoCollection col = db.getCollection("cdr_data"); BasicDBObject queryCond = new BasicDBObject(); queryCond.put("sub_source", "用药史"); queryCond.put("data", new BasicDBObject("$elemMatch", new BasicDBObject("key", "ZLFF").append("value", "免疫治疗"))); BasicDBObject updateCond = new BasicDBObject("$set", new BasicDBObject("data.$.value", "immune")); col.updateMany(queryCond, updateCond);

 

最新回复(0)