【问题标题】:How do I update a product that is partially defined then later add additional product details to it如何更新部分定义的产品,然后向其添加其他产品详细信息
【发布时间】:2022-11-01 12:38:25
【问题描述】:

我有一个在首次创建时部分定义的产品。它被分配了一个产品代码和一个它所属的类别。稍后当营销组提供详细信息时,需要通过将详细信息添加到产品来更新这些详细信息。这些是由不同的小组完成的。批处理作业从一个数据库中获取产品部分产品详细信息,从关系数据库中获取产品详细信息,然后使用 MongoDb 数据库中的产品详细信息更新产品。这是最初存在的对象。产品详细信息被分配产品代码和类别并写入 MongoDB 数据库。批处理作业每晚运行检查产品的产品详细信息,然后在关系数据库中可用时使用 ProductDetails 更新产品。以下是对象:


                   import lombok.AllArgsConstructor;
                   import lombok.Data;
                   import lombok.NoArgsConstructor;
                   import org.springframework.data.annotation.Id;
                   import org.springframework.data.mongodb.core.mapping.Document;

                   @Data
                   @NoArgsConstructor
                   @AllArgsConstructor
                   @Document
                   public class Product {
                     @Id
                     private long productCode;
                     private String category;
                   }

    
                  import lombok.AllArgsConstructor;
                  import lombok.Data;
                  import lombok.NoArgsConstructor;

                  import java.math.BigDecimal;

                  @Data
                  @NoArgsConstructor
                  @AllArgsConstructor
                  public class ProductDetail {
                    private long productCode; // matches the product code in Product
                    private String description;
                    private int quantityOnHold;
                    private BigDecimal price;
                    private String warehouseLocationId;
                    private float discountFactor;
                    private String orderDescCode;
                    private String vendorId;
                  }

我想知道用产品详细信息更新产品的方法是什么。我是否创建等效的产品文档并将产品详细信息添加为嵌套文档?有没有办法通过首先对其进行建模来简单地更新现有文档,即仅具有 2 个字段的产品,然后添加 ProductDetail?我对使用 Spring Data Mongo 比较陌生,所以我不知道最有意义的方法应该是什么,请帮忙。

【问题讨论】:

    标签: spring-boot spring-data spring-data-mongodb


    【解决方案1】:

    我会将所有字段保留在同一个文档中。将它们分成两个文档是没有意义的,在 MongoDB 中更新文档很容易,即使它是多个嵌套文档。但我可能会添加另一个名为“状态”或类似内容的字段,以跟踪哪些产品已更新其详细信息。

    关于如何执行更新,我建议您查看reference documentation 中的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多