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);