部分更新将删除mongodb中的所有其他字段

时间:2019-09-15 10:07:40

标签: mongodb spring-boot

部分更新将删除mongodb中的所有其他字段 在数据库中:

{
  "demo": [
    {
      "id": "ABC123",
      "order": [
        {
          "order": 2,
          "field": "fieldValue"
        }
      ],
      "items": [
        "Story"
      ],
      "statusList": [
        "In progress"
      ]
    }
  ]
}

在Java代码中:

collection.updateOne(Filters.eq("id", "ABC123"), new Document("$set", doc));

// doc是从Model类创建的文档

我想仅传递订单值。 运行Java代码后,由于我的Model类,它将项目和statusList更新为null 我该怎么办? 预先感谢

1 个答案:

答案 0 :(得分:0)

如果您只想更新order,则可以

collection.updateOne(
  Filters.eq("id", "ABC123"), 
  new Document("$set", new Document("order", doc.order))
);

仅包含要更新的字段,这是部分更新的原因。