0
我是Mongo聚合的新手。我想計算兩個值之間的差異(每天的最後一次收集 - 每天的第一次收集)。數據庫記錄數據每5mn爲許多資源名稱。文檔的結構是:計算同一文檔上的兩個值之間的差異
{
_id : ObjectId("5820511a95d447ed648b45d6"),
DeviceName : "OLT01FTV",
ResourceName : "CM MAC:00-07-11-11-39-20",
CollectionTime : ISODate("2016-11-07T09:30:00.000+01:00"),
GranularityPeriod : 5,
A : 0,
B: 17,
C: 4,
D: 21,
E: 3,
F: 0
}
A,B ... F是不同的計數器。 下面的那個插圖,我想有:
([
{ "$match": {
"CollectionTime": {
$gte: ISODate("2016-09-05T00:00:00.000Z"),
$lt: ISODate("2016-10-07T00:00:00.000Z")
}
}},
{ "$unwind": "$u2000" },
{ "$group": {
"_id": null,
"firstUC": { "$first": "$UC" },
"lastUC": { "$last": "$UC" },
"firstSM-MISS": { "$first": "$SM-MISS" },
"lastSM-MISS": { "$last": "$SM-MISS" }
}},
{ "$project": {
"diff": {
"$divide": [
{ "$subtract": [ "$firstUC", "$lastUC" ] },
{ "$subtract": [ "$firstSM-MISS", "$lastSM-MISS" ] }
]
}
}}
])
它不工作,我得到以下結果:{ \t「_id 「:null, \t「diffA」:null } – lalarita
謝謝@dyouberg但我總是有空值.. – lalarita
請參閱編輯。它工作得很好。我認爲你需要改變日期以符合你的需求。 – dyouberg