使用MongoDB跨集合分组
我在mongoDB中有两个类似的集合: 这是“帖子”的收藏 这是“threadtopic”集合 我想创建一个集合“usertopics”,如下所示使用MongoDB跨集合分组,mongodb,mapreduce,Mongodb,Mapreduce,我在mongoDB中有两个类似的集合: 这是“帖子”的收藏 这是“threadtopic”集合 我想创建一个集合“usertopics”,如下所示 { "_id" : ObjectId("..."), "userId" : 374952, "topics" : [ 5, 9, ... ] } 基本上,集合“usertopics”包含每个“userId”的所有“主题”的列表,基于匹配的“threadId”(来自集合“posts”和“threadtopic”),并且只考虑集
{
"_id" : ObjectId("..."),
"userId" : 374952,
"topics" : [ 5, 9, ... ]
}
基本上,集合“usertopics”包含每个“userId”的所有“主题”的列表,基于匹配的“threadId”(来自集合“posts”和“threadtopic”),并且只考虑集合“threadtopic”中的那些threadId,其中“maxportion”大于0.3
如何使用MapReduce进行此操作?MapReduce不能用于在单个操作中进行联接。好的,多个操作如何?首先为每个用户创建一个ThreadID集合,然后使用它从集合“threadtopic”中提取主题?
{
"_id" : ObjectId("4fb012f48df60a565a000000"),
"topics" : [
"5"
],
"maxProportion" : "0.6852791878172588",
"threadId" : "5947299"
}
{
"_id" : ObjectId("..."),
"topics" : [
"9"
],
"maxProportion" : "0.712791878172588",
"threadId" : "16137442"
}
{
"_id" : ObjectId("..."),
"userId" : 374952,
"topics" : [ 5, 9, ... ]
}