我有一個集合,其中每個文檔都包含user_id作爲屬性,它是一個Array字段。例如文件(S)將是:使用mongo聚合框架計算每個用戶的數據
[{
_id: 'i3oi1u31o2yi12o3i1',
unique_prop: 33,
prop1: 'some string value',
prop2: 212,
user_ids: [1, 2, 3 ,4]
},
{
_id: 'i3oi1u88ffdfi12o3i1',
unique_prop: 34,
prop1: 'some string value',
prop2: 216,
user_ids: [2, 3 ,4]
},
{
_id: 'i3oi1u8834432ddsda12o3i1',
unique_prop: 35,
prop1: 'some string value',
prop2: 211,
user_ids: [2]
}]
我的目標是讓每個用戶的文件數量,所以樣本輸出將是:
[
{user_id: 1, count: 1},
{user_id: 2, count: 3},
{user_id: 3, count: 2},
{user_id: 4, count: 2}
]
我已經試過幾件事情沒有的,其中工作,最後我嘗試過:
aggregate([
{ $group: {
_id: { unique_prop: "$unique_prop"},
users: { "$addToSet": "$user_ids" },
count: { "$sum": 1 }
}}
]
但它只是返回了每個文檔的用戶。我仍然試圖學習任何資源或建議會有所幫助。
謝謝!這是整潔! – Mongoid