MongoDB:我可以用这种方式存储股票数据吗?

ddrv8njm  于 2023-03-01  发布在  Go
关注(0)|答案(2)|浏览(237)
{
   {
    "symbol": "MSFT",
    "close": [0, 1, 2, 3, 4, 5],
    "open": [0, 1, 2, 3, 4, 5],
    "high": [0, 1, 2, 3, 4, 5],
    "low": [0, 1, 2, 3, 4, 5],
    "volume": [0, 1, 2, 3, 4, 5],
    "dates": ["2022-01-01", "2022-01-02", "2022-01-03", "2022-01-04", "2022-01-05", "2022-01-06"],
    "date_to_index": {
        "2022-01-01": 0,
        "2022-01-02": 1,
        "2022-01-03": 2,
        "2022-01-04": 3,
        "2022-01-05": 4,
        "2022-01-06": 5
    }
}

当我需要MicroSoft从2022-01-03到2022-01-05的数据时,我将从date_to_index获得开始和结束索引,然后检索我想要的数据数组的索引2到索引4的切片。

fwzugrvs

fwzugrvs1#

您当然可以用这种方式“存储”数据,但是
1.看起来,每次只提取一部分数据或执行两次查询时,都需要获取整个对象。无论哪种方式,看起来都不理想。
1.直觉告诉我们,在使用真实的世界的数据时,存在着不符合文档大小限制的风险(例如,MSFT拥有数十年的股票数据历史)。
总的来说,我会探索其他的策略。

t3irkdon

t3irkdon2#

我会这样存放它们

{
  "MSFT2022-01-01" {
    "symbol": "MSFT",
    "close": 0,
    "open": 0,
    "high": 0,
    "low": 0,
    "volume": 0,
    "date": "2022-01-01", 
    "date_to_index": 0
    }, 
  "MSFT2022-01-02" {
    "symbol": "MSFT",
    "close": 1,
    "open": 1,
    "high": 1,
    "low": 1,
    "volume": 1,
    "date": "2022-01-02", 
    "date_to_index": 1
    }
}

这样,您就可以为符号和日期设置索引,以便更轻松地执行查找和聚合查询

相关问题