我将 MongoDb 用于非结构化文档。当我进行聚合时,我将最终输出作为非结构化对象。为了方便起见,我发布了一些示例数据。实际对象有很多字段。例如:
[
{ _id : "1", type: "VIDEO", videoUrl : "youtube.com/java"},
{ _id : "2", type: "DOCUMENT", documentUrl : "someurl.com/spring-boot-pdf"},
{ _id : "3", type: "ASSESSMENT", marks : 78}
]
Run Code Online (Sandbox Code Playgroud)
上述对象类型的相应类是
@Data
public class Video{
private String _id;
private String type;
private String videoUrl;
}
@Data
public class Document{
private String _id;
private String type;
private String documentUrl;
}
@Data
public class Assessment{
private String _id;
private String type;
private Integer marks;
}
Run Code Online (Sandbox Code Playgroud)
由于我无法指定转换器类,因此我将所有对象作为列表获取,Object.class其中所有对象都是通用类型。
List<Object> list …Run Code Online (Sandbox Code Playgroud) 我有TrainingRequest列表,其中每个元素都有 List of Feedback。
@Data
class TrainingRequest{
@Transient
List<Feedack> feedback;
}
@Data
class Feedback{
String Q1;
String Q2;
}
Run Code Online (Sandbox Code Playgroud)
我需要获得 Q1、Q2 的所有给定结果并计算每个值的百分比。
List<TrainingRequest> trainingList = Optional.ofNullable(trainingRequestList).orElseGet(Collections::emptyList)
.stream().map(m -> {
List<Feedback> feedback = findByTrainingRequestId(m.getId());
m.setFeedback(feedback); // assigning Feedack to TrainingRequest
return m;
}).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
平息所有反馈
List<Feedback> flatMap = trainingList.stream().flatMap(f -> f.getFeedback().stream()).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
为了计算 Q1 和 Q2 的每个值,我将其分组并获取计数。我需要获得计数的每个 Q1、Q2 值的百分比。
Map<String, Map<String, Long>> map = new TreeMap<>();
map.put("Q1", flatMap.stream().collect(Collectors.groupingBy(Feedback::getQ1, Collectors.counting())));
map.put("Q2", flatMap.stream().collect(Collectors.groupingBy(Feedback::getQ2, Collectors.counting())));
Run Code Online (Sandbox Code Playgroud)
当我使用时Collectors.counting(),它给出以下输出:
{
"Q1": {
"unsatisfied": 2, …Run Code Online (Sandbox Code Playgroud) 我的表包含 json 格式的字符串。我需要得到每个键的总和和平均值。
+----+------------------------------------------------------------------------------------+------------+
| id | json_data | subject_id |
+----+------------------------------------------------------------------------------------+------------+
| 1 | {"id": "a", "value": "30"}, {"id": "b", "value": "20"}, {"id": "c", "value": "30"} | 1 |
+----+------------------------------------------------------------------------------------+------------+
| 2 | {"id": "a", "value": "40"}, {"id": "b", "value": "50"}, {"id": "c", "value": "60"} | 1 |
+----+------------------------------------------------------------------------------------+------------+
| 3 | {"id": "a", "value": "20"} | 1 |
+----+------------------------------------------------------------------------------------+------------+
Run Code Online (Sandbox Code Playgroud)
预期结果是
{"id": "a", "sum": 90, "avg": 30},
{"id": "b", "sum": 70, "avg": 35},
{"id": "c", "sum": 120, "avg": 40} …Run Code Online (Sandbox Code Playgroud) 我想从存储在 Bitbucket 中的开发环境中发布我的项目。第一阶段项目的最终版本在服务器上运行,很少有开发人员在本地工作。现在我需要继续致力于该项目以添加新功能或发布新版本。我使用“ master ”分支来保存项目的所有文件。
从我的搜索:
多分支的优势
- 只需一个存储库即可管理
- 可以直接从该一个 repo 的分支之间进行比较(差异)
- 您可以将这些分支中的任何一个从该存储库拉到可能需要它的任何其他下游存储库
我需要克隆我的项目以继续工作还是需要创建另一个分支来放置所有修改过的文件?不推送所有到“ master ”分支的原因是什么?
我的任何陈述是否不正确?
我正在使用 Spring Boot 和 MySQL。我有以下结构的数据。
我尝试将其显示为以下结构。我正在使用数据表数据表链接,我尝试以多种方式使用数据表和 javascript 的 api(s),但我无法做到。
很少有链接描述可以使用$('#datatable').DataTable({'rowsGroup': [0]}),但不起作用。我在 Java 中使用 map 实现。但如果我在前端做,我会感觉更好
日期时间总是唯一的,每个日期时间总是有 6 条记录
价值应该是 sum(value)/(distinct Datetime)
如果在反馈中传递空值/空值,则仅忽略标题和反馈
我该如何解决这个问题?
我正在春季启动中编写REST Api-s。我想确保我的代码对于使用swagger API开发工具(Swagger)的前端开发人员而言是可读的。例如
@GetMapping("/getOne")
public ResponseEntity<?> getOne(@RequestParam String id) {
try {
return new ResponseEntity<Branch>(branchService.getOne(id), HttpStatus.OK);
} catch (Exception e) {
return new ResponseEntity<FindError>(new FindError(e.getMessage()), HttpStatus.BAD_REQUEST);
}
}
Run Code Online (Sandbox Code Playgroud)
如果请求成功,则响应为Branch对象,如果失败,则响应为仅具有一个属性(message)的FindError对象。因此两者能否执行取决于响应。但是摇摇欲坠的UI并未显示应如何显示响应,因为我使用了“?” 作为通用类型。这是捕获错误的最佳实践吗?(此编码文档说明对前端开发人员没有用,因为它没有显示响应对象)。或针对上述问题的最佳做法?
有很多方法可以返回不同的对象,例如Branch。提前致谢
spring-boot ×3
java ×2
spring ×2
bitbucket ×1
collections ×1
datatable ×1
datatables ×1
git ×1
java-stream ×1
javascript ×1
jquery ×1
mysql ×1
spring-data ×1
sql ×1
swagger ×1
swagger-2.0 ×1
swagger-ui ×1