0
我有以下結構文件:MongoDB中彙總了整個系列的嵌套值與計數
{
_id: 123,
machine_id: 456,
data: {
some_data: 100,
exceptions: [{
hash: 789,
value: 'something',
stack_trace: 'line 123: oops',
count: 5,
}]
}
}
{
_id: 234,
machine_id: 567,
data: {
some_other_data: 200,
exceptions: [{
hash: 789,
value: 'something',
stack_trace: 'line 123: oops',
count: 1,
}, {
hash: 890,
value: 'something_else',
stack_trace: 'line 678: ouch',
count: 3,
}]
}
}
的散列值和stack_trace的組合(我加了這個專門嘗試在整個聚集例外採集)。我想運行一個查詢,它返回每個不同的異常,以及總數,值和堆棧跟蹤。在這種情況下,結果將類似於:
[{
hash: 789,
value: 'something',
stack_trace: 'line123: oops',
count: 6,
}, {
hash: 890,
value: 'something_else',
stack_trace: 'line 678: ouch',
count: 3,
}]
我是很新的MongoDB,並sturggling得到聚合級流水給我任何有意義的輸出。
如果您認爲有更好的方法,也歡迎對構建這些數據的意見。
謝謝!這是我失蹤的最初'放鬆'! – Ferguzz
看起來你看起來不錯,我可以問你快速計算集合中所有異常總數的最有效方法嗎?我是否也應該使用聚合?例如: collection.aggregate {'$ unwind':'$ data.exceptions'}, {'$ group':{ '_id':None, 'count':{'$ sum': '$ data.exceptions.count'} }}, ]) – Ferguzz
這似乎是對的,或者你可以做'db.collection.distinct(「data.exceptions.count」)''會給你'[5,1, 3]',你可以用你的語言申請總和。例如,在JS中,你可以做'sum = [5,1,3] .reduce((a,b)=> a + b,0);' – Veeram