我有一个集合,其中每个文档都包含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