我创建了一个用于计算平均值的查询
db.voltage.aggregate([
{
$match: {
$and: [
{EventTS: {$gte: ISODate("2016-07-01T00:00:00.000+0000")}},
{EventTS: {$lte: ISODate("2016-07-31T00:00:00.000+0000")}}
]
}
},
{$project: {
date: {
$dateToString: {format: "%Y-%m-%d", date: "$EventTS"}},
KeyValues:1
}},
{$unwind: '$KeyValues'},
{$project: {
date: 1,
RVoltage: '$KeyValues.RVoltage',
YVoltage: '$KeyValues.YVoltage',
BVoltage: '$KeyValues.BVoltage'
}},
{$group: {
_id: '$date',
ravg: {$avg: '$RVoltage'},
yavg: {$avg: '$YVoltage'},
bavg: {$avg: '$BVoltage'}
}},
{$sort: {_id: 1}}
])
我的收藏包含
{
"_id" : ObjectId("5790f9407ffbe031fa2049e3"),
"EventTS" : ISODate("2016-07-01T04:30:00.000+0530"),
"KeyValues" : [
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 222.52
}
]
}
{
"_id" : ObjectId("5790f9407ffbe031fa2049e4"),
"EventTS" : ISODate("2016-07-01T05:30:00.000+0530"),
"PanelID" : "A01699",
"KeyValues" : [
{
"RVoltage" : 233.28
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 233.37
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
}
]
}
{
"_id" : ObjectId("5790f9407ffbe031fa2049e8"),
"EventTS" : ISODate("2016-07-01T05:30:00.000+0530"),
"PanelID" : "A00795",
"KeyValues" : [
{
"RVoltage" : 238.72
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 237.08
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 235.2
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 238.14
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
}
]
}
{
"_id" : ObjectId("5790f9407ffbe031fa2049ec"),
"EventTS" : ISODate("2016-07-01T05:30:00.000+0530"),
"PanelID" : "A00540",
"KeyValues" : [
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 249.01
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 246.49
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 246.78
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 247.47
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
}
]
}
{
"_id" : ObjectId("5790f9407ffbe031fa2049ed"),
"EventTS" : ISODate("2016-07-01T05:30:00.000+0530"),
"PanelID" : "A00946",
"KeyValues" : [
{
"RVoltage" : 248.67
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 249.91
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 248.82
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 247.01
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
}
]
}
{
"_id" : ObjectId("5790f9407ffbe031fa2049ee"),
"EventTS" : ISODate("2016-07-01T05:30:00.000+0530"),
"PanelID" : "A01132",
"KeyValues" : [
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 230.79
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
}
]
}
{
"_id" : ObjectId("5790f9407ffbe031fa2049f0"),
"EventTS" : ISODate("2016-07-01T05:30:00.000+0530"),
"PanelID" : "A01006",
"KeyValues" : [
{
"RVoltage" : 262.01
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 261.21
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 261.18
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : 261.61
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
"RVoltage" : null
}
]
}
{
"_id" : ObjectId("5790f9407ffbe031fa2049f4"),
"EventTS" : ISODate("2016-07-01T05:30:00.000+0530"),
"PanelID" : "A01682",
"KeyValues" : [
{
"RVoltage" : 232.93
},
{
"RVoltage" : null
},
{
"RVoltage" : null
},
{
当我执行此查询时,超过500k记录需要超过30秒。我的查询有什么问题以及为什么要花时间执行?