我有一个集合,可以说以下内容:
{
"_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
});
有人可以给我一个提示吗?非常感谢您的帮助!
托比