如何在MongoDB中存储价格以获取最佳实践



首先提前感谢您的帮助。

我有一个使用 Spring Data 的 Spring Boot 和 mongo 的应用程序,我有这样的东西:

@Document("products")
class Product {
    @Id
    private String $id;
    private String $name;
    private Money price;
    private Money deliveryPrice;
}
class Money {
    private BigDecimal amount;
    private Currency currency;
}

如果我保存产品,它会保存如下:

{
    _id: ObjectId("AAAA"),
    name: "Product 1",
    price: {
        amount: "100",
        currency: "EUR"
    },
    deliveryPrice: {
        amount: "10",
        currency: "EUR"
    }
}

这是正确的,但我不喜欢它的保存方式。

我想存储如下:

{
    _id: ObjectId("AAAA"),
    name: "Product 1",
    price: DecimalNumber(100),
    deliveryPrice: DecimalNumber(10),
    currency: "EUR"
}

这样我就不会复制所有价格值中不需要的信息。

我该如何解决这个问题?这是最好的解决方案吗?万一不是应该怎么回事?

谢谢

class Money {
    private BigDecimal amount;
    @Transient
    private Currency currency;
}

现在,currency属性将不会保留在MongoDB中。

最新更新