次のコンテンツを含むコレクションがあります。
{
"_id":ObjectId("5051c4778ec2487f7c000001"),
"user_id":"978956784678",
"likes":{
"data":[
{
"name":"Store 1",
"category":"Retail and consumer merchandise",
"id":"354412263434",
"created_time":"2012-09-07T11:36:05+0000"
},
{
"name":"Store 2",
"category":"Retail and consumer merchandise",
"id":"293088074081904",
"created_time":"2012-08-13T20:06:49+0000"
}
],
"paging":{
"next":"https://test.com/next"
}
}
}
次の出力を(概略的に)提供するために、MongoDBでMap/Reduceまたは集計を構築しようとしています。
user_id、category、"いいねの数"
どういうわけか、適切な解決策が見つかりません...これまでに得たのは、好きなカテゴリの合計ですが、user_idごとではありません。
db.runCommand({
mapreduce: "likes",
map: function() {
this.likes.data.forEach(
function(z){
emit( z.category , { count : 1 } );
}
);
},
reduce: function(key, values) {
var total = 0;
for ( var i=0; i<values.length; i++ )
total += values[i].count;
return { count : total };
},
out: 'result3',
verbose: true
});
誰かが私にヒントを与えることができますか?ヘルプは大歓迎です!
トビ