ユーザーと投稿のコレクションがあるとします。投稿収集では、ユーザー名をキーとして投票保存します。
db.user.insert({name:'a', age:12});
db.user.insert({name:'b', age:12});
db.user.insert({name:'c', age:22});
db.user.insert({name:'d', age:22});
db.post.insert({Title:'Title1', vote:[a]});
db.post.insert({Title:'Title2', vote:[a,b]});
db.post.insert({Title:'Title3', vote:[a,b,c]});
db.post.insert({Title:'Title4', vote:[a,b,c,d]});
投稿ごとにグループ化したいと思います。タイトルと、さまざまなユーザー年齢での投票数を調べます。
> {_id:'Title1', value:{ ages:[{age:12, Count:1},{age:22, Count:0}]} }
> {_id:'Title2', value:{ ages:[{age:12, Count:2},{age:22, Count:0}]} }
> {_id:'Title3', value:{ ages:[{age:12, Count:2},{age:22, Count:1}]} }
> {_id:'Title4', value:{ ages:[{age:12, Count:2},{age:22, Count:2}]} }
私は検索しましたが、mongodbmapreduceの2つのコレクションにアクセスする方法が見つかりません。再削減で達成することは可能でしょうか?
ユーザードキュメントを投稿に埋め込むのは非常に簡単ですが、実際のユーザードキュメントには多くのプロパティがあるため、これを行うのは良い方法ではありません。簡略化されたバージョンのユーザードキュメントを含めると、分析の次元が制限されます。
{Title:'Title1', vote:[{name:'a', age:12}]}