我可以帮助您进行翻译。以下是您需要翻译的内容:
我有一个查询(针对MongoDB数据库),返回已经进行了映射减少的对象,这些对象每15分钟汇报一次,但问题在于,如果其中一个服务器发生关键错误,则该时间段将无法计算。
以这个数组为例:
[
{:timestamp=>2011-09-26 19:00:00 UTC, :count=>318},
{:timestamp=>2011-09-26 19:15:00 UTC, :count=>308},
{:timestamp=>2011-09-26 19:30:00 UTC, :count=>222},
{:timestamp=>2011-09-26 19:45:00 UTC, :count=>215},
{:timestamp=>2011-09-26 20:00:00 UTC, :count=>166},
{:timestamp=>2011-09-26 21:15:00 UTC, :count=>149},
{:timestamp=>2011-09-26 21:30:00 UTC, :count=>145},
{:timestamp=>2011-09-26 21:45:00 UTC, :count=>107},
{:timestamp=>2011-09-26 22:00:00 UTC, :count=>137},
{:timestamp=>2011-09-26 22:15:00 UTC, :count=>135},
{:timestamp=>2011-09-26 22:30:00 UTC, :count=>191},
{:timestamp=>2011-09-26 22:45:00 UTC, :count=>235}
]
您会注意到时间范围中缺少时间:
{:timestamp=>2011-09-26 20:15:00 UTC},
{:timestamp=>2011-09-26 20:30:00 UTC},
{:timestamp=>2011-09-26 20:45:00 UTC},
{:timestamp=>2011-09-26 21:00:00 UTC}
如何将顶部作为输入,并推断出这些将是缺失的行?时间增量将始终为15分钟,实际上,它是一个真正的日期对象,而不是像那样的字符串。
我无法想象如何迭代它。
任何帮助都将非常感激。
if report[:timestamp].advance(minutes: 15) < report[index + 1][:timestamp]
这一行中,小于号后面的report[index + 1]
是 nil 吗?当我将其更改为我认为应该是的reports[index + 1]
时,程序会一直运行。你有什么想法吗? - JP Silvashy