我有一个连接到mongoDB的REST服务器。 我的数据库有一个包含大量测试的集合,形式如下:
{
name: 'xxx',
date: 'xxx',
props: [
{
role: 1,
commands: [
{
command: 'xxx',
data: [
{
timestamp: 'xxx',
cpu: 1,
ram: 5
},
{
timestamp: 'xxy',
cpu: 2,
ram: 3
}
]
}
]
}
]
}
收藏巨大,或者至少有潜力。
Props
-最多可以包含3个对象
Props.commands
-最多可以包含30个对象
Props.commands.data
-最多可以包含20个对象
我应该预先计算平均值并存储在每个嵌套级别中,还是使用Mongo提供的聚合函数根据需要计算平均值?
我尝试对单个文档使用嵌套的$unwind's
,并且该文档已经有很长的处理时间,考虑到数据量,这是有意义的。
我想知道将文档添加到集合中时简单地存储每个级别的平均值,而不是在使用MongoDB的聚合函数之后计算它们,是否会更明智。
最终目标是使用$match
过滤掉数据,然后以最快的方法聚合CPU和ram。
我对Mongo相当陌生,因此在聚合管道和功能方面的经验非常有限,因此任何提示都将受到欢迎。
谢谢!