mongodb 证券市场财务数据库模式设计

n6lpvg4x  于 2023-02-18  发布在  Go
关注(0)|答案(2)|浏览(114)

我试图找出最佳结构来存储每日插入的财务数据。
1.查询当前数据的特定符号
1.按值查找当前符号(其中price〈10且dividend. amountPaid〉3)
1.绘制每个符号的历史值(2010年至2020年期间的所有股息和收益率的查询)
目前正在考虑使用MongoDB,但我不确定哪种结构最适合我的需要。在每个符号中嵌入10年的所有数据似乎太多了,所以我想也许可以在每个符号中嵌入当前数据,并创建对历史文档的引用。
您会采用什么方法来存储这些数据?MongoDB不是一个很好的解决方案吗?
下面是一个符号数据的小示例。

{
  "symbol": "AAPL",
  "info": {
    "company_name": "Apple Inc.",
    "description": "some long text",
    "website": "http://apple.com",
    "logo_url": "http://apple.com"
  },
  "quotes": {
     "open": 111,
      "close": 321,
      "high": 111,
      "low": 100
    },
  "dividends": {
    "amountPaid": 0.5,
    "exDate": "2020-01-01",
    "yieldOnCost": 10,
    "growth": { value: 111, pct_chg: 10 } /* some fields could be more attributes than just k/v */
    "yield": 123
  },
  "fundamentals": {
    "num_employees": 123213213,
    "shares": 123123123123,
    ....
  }
}

谢谢。

8zzbczxx

8zzbczxx1#

您将采用什么方法来存储这些数据?
根据您发布的信息(示例数据和用例),我认为将历史数据存储为单独的集合听起来不错。
影响数据库设计的一些重要因素(或数据模型)是数据量和查询类型--您计划对数据执行的最重要的查询。(对于股票代码)可用于执行前两个查询-您可以从将历史数据存储为单独集合的想法开始。一个符号的历史数据文档可以是一年 * 或一系列年 *,具体取决于查询、数据大小和信息类型。
MongoDB基于文档的模型允许灵活的模式,这对于实现未来的变化和需求非常有用。注意,MongoDB文档最多可以存储16 MB的数据。
有关参考,请参见MongoDB Data Model Design

70gysomp

70gysomp2#

股票市场数据本身是巨大的。把它都放在一个地方每个公司,否则你得到一个烂摊子迟早。你的例子上面:徽标是'.png'等,而不是.html你的“报价”部分将是太大的方式...保持它的所有在顶层...这是与mongo的好事情。每个报价文档应该有一个日期;)与之关联...使用mongo也有的日期格式,而不是字符串...

相关问题