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

时间:2017-11-02 15:17:23

标签: mongodb spring-data-mongodb

首先感谢您的帮助。

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

@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"
}

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

我该如何解决这个问题? 这是最好的解决方案吗?如果不是应该怎么做?

由于

1 个答案:

答案 0 :(得分:0)

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

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