我正在尝试使用 mongodb 作为后端在 django 中定义时间序列模型。我在 MongoDB 博客上阅读了一些时间序列数据的最佳实践,我认为我对它的理解已经足够好了。但是现在,我的问题/问题是:如何使用 django 的模型语法定义这样的模型?我不确定这些是否会embedded documents
或只是存储arrays
或存储dicts
在模型字段中。这是建议的 mongo 格式:
理想的 mongo 文档格式:
{
timestamp_hour: ISODate("2013-10-10T23:00:00.000Z"),
type: “memory_used”,
values: {
0: { 0: 999999, 1: 999999, …, 59: 1000000 },
1: { 0: 2000000, 1: 2000000, …, 59: 1000000 },
…,
58: { 0: 1600000, 1: 1200000, …, 59: 1100000 },
59: { 0: 1300000, 1: 1400000, …, 59: 1500000 }
}
}
一种解决方案是做这样的事情,一个文档包含一天的数据:
# models.py
class timeseries(models.Model):
date = models.DateField(null=True)
value_hour_0 = models.CharField(max_length='1024', blank=True)
value_hour_1 = models.CharField(max_length='1024', blank=True)
value_hour_...
value_hour_23 = models.CharField(max_length='1024', blank=True)
即使我存储arrays
或dicts
在value_hour_n
字段中,它也不能完全提供文章中提到的查询文档的优势,例如timeseries.HR.MIN
. 有什么建议么?