java - 这是访问、更新和保存 mongoDB 的正确方法吗?
问题描述
提供一些背景信息——我正在制作一个错误跟踪器应用程序并使用 MongoDB 进行数据存储。我需要更新文档中的单个值 - 错误的状态。我的“错误”对象存储在 mongoDB 中。目前,我正在通过其 ID 值检索文档/对象/错误。然后我通过 JVM 更新对象并重新保存/覆盖整个原始文档/错误,以便它现在包含更新的状态。虽然这可行,但我不确定这是否是在 MongoDB 中更新数据的“专业”方式。提前感谢您的建议/意见。
@PutMapping("/{bugID}/{status}")
public Bug setBugStatus(@PathVariable String projectID, @PathVariable String bugID, @PathVariable String status) {
return bugService.setBugStatus(projectID, bugID, status);
}
public Bug setBugStatus(String projectID, String bugID, String status) {
Project project = getProjectByID(projectID);
Bug bug = project.getBugQueue().findBugByID(bugID);
if (status.equalsIgnoreCase("solved")) {
bug.setStatusSolved();
} else if (status.equalsIgnoreCase("inprogress")) {
bug.setStatusInProgress();
} else if (status.equalsIgnoreCase("unsolved")) {
bug.setStatusUnsolved();
}
mongoTemplate.save(project);
return bug;
}
private Project getProjectByID(String projectID) {
return mongoTemplate.findById(projectID, Project.class);
}
这是一个文档的样子:
{
"projectID": "1",
"title": "Amazon",
"description": "An online ECommerce store.",
"dateCreated": "Mon Sep 14 01:18:40 IST 2020",
"timestamp": "14-09-2020 01:18:40",
"bugQueue": {
"priorityQueue": [
{
"priority": 10,
"bug": {
"bugID": "1",
"dateCreated": "Mon Sep 14 01:18:40 IST 2020",
"dateResolved": null,
"title": "Order processing failed.",
"bugDescription": "Orders are not being processed after 9.32pm.",
"status": "Unsolved",
"discoveredBy": null,
"solutionDescription": null,
"bugProgressReportList": {
"reportsList": []
},
"bugAssignedToList": {
"employeeList": []
},
"priority": "Highest"
}
}
],
"empty": false
},
"employeeList": {
"employeeList": [
{
"employeeID": "2",
"firstName": "Alex",
"secondName": "Wands"
},
{
"employeeID": "3",
"firstName": "Alice",
"secondName": "Black"
}
]
}
}
解决方案
推荐阅读
- reactjs - MUI makeStyles 设置多种样式的道具和逻辑
- c# - 问题显示不正确 - 当前上下文中不存在该名称
- python-3.x - Why can't get the page source with headless browser using selenium?
- html - 引导对齐img同一行
- performance - 为什么 pytorch 的“for loop”比 tensorflow2.3 快 10 倍?
- javascript - html css javascript canvas 在我的网站上不可见
- kubernetes - Pritunl - 内部 DNS 服务器问题
- php - 二维码已生成但未显示在页面上
- ios - 在 quickblox 聊天中确认超时...尝试发送图像时
- javascript - 无法在 React 上从我的桌面加载图像