首页 > 解决方案 > 更新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 更新文档?

标签: mongodbspring-data-mongodb

解决方案


好吧,你有 pojo,它有所有可能的领域。

每次更新都需要三个部分。

  1. 查找命令以识别要更新的文档
  2. 指定将更新内容的文档
  3. 选项指定 upsert、multi

您可以迭代 pojo 中的每个字段并检查非空字段,然后将其添加到 updateDoc

java中的示例更新


推荐阅读