我试图找出最佳结构来存储每日插入的财务数据。
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,
....
}
}
谢谢。
2条答案
按热度按时间8zzbczxx1#
您将采用什么方法来存储这些数据?
根据您发布的信息(示例数据和用例),我认为将历史数据存储为单独的集合听起来不错。
影响数据库设计的一些重要因素(或数据模型)是数据量和查询类型--您计划对数据执行的最重要的查询。(对于股票代码)可用于执行前两个查询-您可以从将历史数据存储为单独集合的想法开始。一个符号的历史数据文档可以是一年 * 或一系列年 *,具体取决于查询、数据大小和信息类型。
MongoDB基于文档的模型允许灵活的模式,这对于实现未来的变化和需求非常有用。注意,MongoDB文档最多可以存储16 MB的数据。
有关参考,请参见MongoDB Data Model Design。
70gysomp2#
股票市场数据本身是巨大的。把它都放在一个地方每个公司,否则你得到一个烂摊子迟早。你的例子上面:徽标是'.png'等,而不是.html你的“报价”部分将是太大的方式...保持它的所有在顶层...这是与mongo的好事情。每个报价文档应该有一个日期;)与之关联...使用mongo也有的日期格式,而不是字符串...