当前位置:  开发笔记 > 数据库 > 正文

MongoDB:股票报价数据库的架构设计

如何解决《MongoDB:股票报价数据库的架构设计》经验,为你挑选了1个好方法。

我需要将每日收盘价以及报价数据存储在MongoDB中。您将如何设计这样的模式?对于每日价格,我很想为每个股票代号准备一份文件,例如

{
    symbol: "AAPL",
    quotes: {
        {
           date: '2014-01-01',
           values: { open: 1, high: 1, low: 1, close: 1, volume: 100 }
        },
        {
           date: '2014-01-02',
           values: { open: 1, high: 1, low: 1, close: 1, volume: 100 }
        }, ...
    }
}

对于滴答数据,我可以每小时对一个子文档进行一系列类似的操作,完成上述操作。

但是,考虑到最大文档大小只有16MB,我相信可以很快达到限制,尤其是对于滴答数据。

我知道这种方法http://blog.mongodb.org/post/65517193370/schema-design-for-time-series-data-in-mongodb。那会是个好方法吗?即每天每个符号一个文档?

因此,您将如何分别设计每日价格和报价数据的架构?



1> aludvigsen..:

我认为您在正确的轨道上。

每个股票代号都有一个文档,可以让您全面了解集合中的所有股票代号。每个文档的大小都可以维护。

我认为,如果您在单个文档上甚至接近16MB,那么架构设计还远远不够。它不容易阅读或维护。每当您想要从文档中获取任何内容时,您还必须获取大量数据。

您提到“每天每个符号一个文档”。对我来说,这听起来像是一种明智的数据结构方式。尽管我不熟悉股票报价数据的详细信息,但我认为这将为您提供架构设计的良好基础。您将其按天划分,可以轻松获得给定日期/小时的所有报价。

请记住,对架构设计没有绝对的解决方案,只要您仔细考虑一下即可。(虽然肯定有对/错的方式);)

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有