我需要存储资金的财务数据,通常是下面股票的日终值。每天基金可能会改变其持有的股票(持股)。我的系统最多可能有1000个基金。每个基金可能拥有1000 - 100,000个股票(头寸)。这些股票的一些统计价值将每天存储。
因此,基金每天都会改变其拥有的股票数量(可能有新增加的股票/其中一部分被移除),股票的统计价值将发生变化。该每日持有数据将附加到基金的现有数据中。
也就是说,我们有一个如下所示的层次结构: fund1 - > date1 - >持有:{stock1:{stat values array},stock2:{stat values array}}, fund1 - > date2 - >持有:{stock1:{stat values array},stock2:{stat values array},stock3:{stat values array}}
存储数据以便更快检索的更好方法是什么?检索后将对数据进行一些统计计算。
我应该创建一个集合来维护其中的所有资金数据吗?模式将类似于(fundId,date,holding),持有将包含当天的股票持有数据的嵌入文档。也就是说,对于一年,1000个基金* 260个工作日*(1000 - 100000)每个基金每天的库存数据,将进入这个单一的收集。从长远来看,这对于所有数据3年后是否会表现良好?
我应该为每个基金创建一个集合吗?那将是1000个收藏品。这样,我每个集合都有(日期,持有),但如果我需要一次性检索许多资金的数据以进行加入,我将需要查询集合。这可以达到100个基金 - 有时会有150个基金。这会影响性能吗?
感谢您的帮助。