Mongodb map reduce是合并相互引用的多个集合的部分的适当方法吗?
我一直在这里和其他网站上阅读关于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
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
}
}
} "