私はコレクションを持っています。各ドキュメントにはuser_idsがプロパティとして格納されています。これはArrayフィールドです。例の文書(複数)は次のようになります。mongoアグリゲーションフレームワークを使用するユーザー1人あたりのデータを集計します
[{
_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