【问题标题】:Storing historical prices in MongoDB在 MongoDB 中存储历史价格
【发布时间】:2011-02-21 07:54:18
【问题描述】:

我有一个应用程序需要存储产品的历史价格 最多 50 次最后价格变动。

产品 ID - 进而 日期+时间/每次价格变化的小数价格

我正在考虑为此使用 MongoDB。这样合适吗?你会为这样的应用程序使用什么结构?

【问题讨论】:

    标签: mongodb nosql


    【解决方案1】:

    TBH,所有数据库中的任何一个都非常适合,包括 MongoDB。至于它是否让 MongoDB 成为最适合您的解决方案,这是无法回答的,因为“最好”是主观的。

    在 Mongo 中,我认为存储它的一个好方法是拥有一个产品文档,其中价格历史存储在与产品相同的文档中。

    例如

    {
        "Code" : "Prod1",
        "Description" : "Product 1",
        "Price" : 10.99
        "PriceHistory" : [
        {
            "Date" : "20110121010203",
            "Price" : 11.99
        },
        {
            "Date" : "20101201000000",
            "Price" : 13.49
        }
        ]
    }
    

    【讨论】:

    • 谢谢,这证实了我的理解,任何人都可以粘贴一个使用 gpymongo 的例子来推动这个结构的新价格吗?
    • 由于您需要存储最新的 50 个历史价格,如果您使用 MongoDB,请密切关注 jira.mongodb.org/browse/SERVER-991 - 这是实现固定大小数组的一张票。在您的情况下,在@AdaTheDev 提供的示例中,您将能够轻松保留 50 个最新的历史价格。
    • 如果我们想要 upsert 到这个文档进行合并,因为嵌入了 doc PriceHistory,upsert 会失败。有没有办法防止这种情况?请看这个:stackoverflow.com/questions/45718580/…
    猜你喜欢
    • 2019-09-16
    • 2016-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 2018-02-24
    • 2016-04-11
    • 2019-01-05
    • 2011-03-23
    相关资源
    最近更新 更多