基于另一个搜索MongoDB集合

时间:2014-01-28 17:32:59

标签: javascript mongodb

我有document名为Mapping,其中有一个_id和一组名为Mappings的对象。 我有另一个名为collection的{​​{1}}。对于NewMappings中的每个_id,我需要在NewMappings数组中搜索并返回Mappings (of Mapping collection)的{​​{1}}。

我写了这样的东西,但它没有返回任何东西。

_id

但是,此查询返回值

Mapping

我错过了什么吗? 请帮我。我在黑暗中。提前致谢。

2 个答案:

答案 0 :(得分:0)

一种方法,如果你只是想看到结果是:

var d=db.NewMappings.find(); 
d.forEach(function(item){
    db.matching.find({Mappings: {$elemMatch : {TargetId: item._id}}}).forEach(printjson)
})

您还可以使用aggregation framework

答案 1 :(得分:0)

听起来你正在尝试进行加入,这在MongoDB中并未明确支持。您需要使用一些聚合函数来展平数据或mapreduce。

以下是使用mapreduce重构信息的示例: http://cookbook.mongodb.org/patterns/pivot/