mongodb - 更新MongoDB文档中的多个字段-部分更新-
问题描述
我在 mongo 数据库中有一个类似下面的文档,并且我有相应的 Model 类 Flight.java,其中所有可能的字段都可以随时作为更新出现?
{
"flight": {
"event": "Leg",
"version": "2",
"key": {
"fltNum": "1111",
"fltOrgDate": "2021-01-12",
"depSta": "BBB",
"dupDepStaNum": "0"
},
"leg": {
"stations": {
"arr": "VVV",
"dupArrStaNum": "0"
},
"times": {
"STD": "2021-01-12T20:30:00",
"STA": "2021-01-12T23:21:00",
"LTD": "2021-01-12T20:30:00",
"LTA": "2021-01-12T23:05:00",
"PTA": "2021-01-12T23:05:00"
},
"status": {
"leg": " ",
"dep": "S",
"arr": "S"
}
}
}
}
因此,我将不断更新该文档的现有字段或一些新字段。我不确定哪个文件会得到更新。
那么如何使用 java MongoDB 或 Spring Data MongoDB 更新文档?
解决方案
好吧,你有 pojo,它有所有可能的领域。
每次更新都需要三个部分。
- 查找命令以识别要更新的文档
- 指定将更新内容的文档
- 选项指定 upsert、multi
您可以迭代 pojo 中的每个字段并检查非空字段,然后将其添加到 updateDoc
推荐阅读
- python - 在 Jinja 模板中渲染时浮点值太长
- maven - Maven Golang 构建未扫描 Go
- python-3.x - 如何对每个特定字符进行切片并将文本保留在列表中?
- azure-functions - 天蓝色存储模拟器和功能 - 使用 guid 和扩展名触发文件名 - 为什么?
- sql - 如何加入多个数据框,如果唯一键不存在,将其添加为附加行
- javascript - 如何使用获取工作项 API 对返回的关系进行排序?
- c++ - 如何正确实现管道以与 Windows C++ 上的可执行文件进行通信?
- r - 使用 R 高效解析大型 XML 文件
- java - 使用 exec('command') 方法从 java 执行 linux 命令
- excel - 带有布尔触发器的 VBA Averageifs