在存储时间序列数据时,将日期作为_id是一个好主意吗?

时间:2014-03-25 07:36:01

标签: python mongodb

我是MongoDB的新手。我正在编写一个python脚本来刮取和更新股票报价数据。该脚本将运行一次以刮取并构建最新的数据库,然后每天运行以进行更新。

经过一番研究,我认为MongoDb符合要求。目前,我将日期设置为'_id',因为我想确保唯一性(因为更新还会从包含前几天数据的页面中删除)。

这是一个潜在的灾难性想法吗?如果是这样,我该怎么办?感谢

1 个答案:

答案 0 :(得分:1)

不,这不是一个好主意,因为默认情况下,MongoDB已经在_id中保存了时间戳:

您可以使用以下代码检索_id数据:

date = new Date( parseInt( _id.toString().substring(0,8), 16 ) * 1000 )

我使用自动生成的MongoDB _id

编辑:(来自评论)如果您使用的是PyMongo,则objectid python对象具有属性generation_time,您可以从中提取相关的datetime.datetime实例。 PyMongo API Doc

>>> ObjectId().generation_time