使用MongoDB跨集合分组

使用MongoDB跨集合分组,mongodb,mapreduce,Mongodb,Mapreduce,我在mongoDB中有两个类似的集合: 这是“帖子”的收藏 这是“threadtopic”集合 我想创建一个集合“usertopics”,如下所示 { "_id" : ObjectId("..."), "userId" : 374952, "topics" : [ 5, 9, ... ] } 基本上,集合“usertopics”包含每个“userId”的所有“主题”的列表,基于匹配的“threadId”(来自集合“posts”和“threadtopic”),并且只考虑集

我在mongoDB中有两个类似的集合:

这是“帖子”的收藏

这是“threadtopic”集合

我想创建一个集合“usertopics”,如下所示

{
    "_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, ... ]
}