Mongodb map reduce是合并相互引用的多个集合的部分的适当方法吗?

Mongodb map reduce是合并相互引用的多个集合的部分的适当方法吗?,mongodb,mapreduce,Mongodb,Mapreduce,我一直在这里和其他网站上阅读关于map/reduce的文章,我仍然不确定这是解决这个问题的正确方法还是错误方法 我有三种型号: User -- embeds many SearchRequests SearchRequest -- references 1 Item Item 我需要做的是从每个模型中获取一些信息,然后消除任何不符合标准的结果。这是地图/地图吗 我想要的地图是: user.email, user.name, item.name, item.amount, item.url

我一直在这里和其他网站上阅读关于map/reduce的文章,我仍然不确定这是解决这个问题的正确方法还是错误方法

我有三种型号:

User --  embeds many SearchRequests
SearchRequest -- references 1 Item
Item
我需要做的是从每个模型中获取一些信息,然后消除任何不符合标准的结果。这是地图/地图吗

我想要的地图是:

user.email, user.name, item.name, item.amount, 
 item.url, searchRequest.amountCutoff
然后我想我会减少并删除任何记录,其中:

item.amount>searchRequest.amountCutoff

我遇到的问题是如何在地图中获取
item.name,item.amount
。这就是我到目前为止所做的(将在Users集合中调用map):

^^上面的语法可能不正确。我还在学习。看起来我需要mongo等效的LINQs范围变量在那里。。。不确定这是否可能


因此,我的问题是:是否可以(或智能地)访问另一个不是映射函数中的“映射”集合的集合

AFAIK,不幸的是,map/reduce目前不支持多个集合

因为您知道item.count>n的条件,所以在其上创建一个索引并查询出文档。它应该包含用户的引用,比如userid

这可以通过在mongoshell中运行javascript来完成,也可以在您的环境中编写代码

map = "function() {  if (this.search_requests)
  for (var ar in this.search_requests) {

// this part needs help  ---vvvv
    var theItem= items.where(_id: this.search_requests[ar].item_id) 

    emit ( { },
     { this.email, 
       this.name, 
       this.search_requests[ar].item_id,
       this.search_requests[ar].amountCutoff, 
       theItem.name,
       theItem.amount
      }
    }
} "