如何将价格存储在 MongoDB 中以获得最佳实践?

How to store prices in MongoDB for best practices?

首先感谢您的帮助。

我有一个使用 Spring 引导和 mongo 使用 Spring 数据的应用程序,我有这样的东西:

@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 中。