我目前正在开发一个节点应用程序,它会按时间间隔收集信息并将它们保存在MongoDB中。并非每次间隔运行都会收到每个数据集,这就是为什么只有部分数据集会获得新条目。
我的数据结构如下:
{
dataSet1: {
entries: [
{run: 3, score: 5},
{run: 4, score: 3},
{run: 7, score: 11},
{run: 10, score: 4},
]
},
dataSet2: {...}
}
我想获得每个数据集的平均分数。 run属性自动递增,并指示在哪个迭代中获得分数。缺失的跑数应计为0分。我还有关于最后一个运行编号的信息,因此在数据集的最后一个条目之后也可以有0个分数值。例如,如果当前运行为12,那么对于dataSet1,需要另外考虑运行11和12的两个0得分值。
当然我可以在MongoDB中将这些缺失值存储为0。但是每次运行可能只有很少的数据集可以更新。使用空值更新所有数据集会大大增加存储和性能。
有没有办法让MongoDB根据缺失的条目计算平均分数?