[英]Searching one collection by a value in another, in Meteor (MongoDB)
[英]Searching a MongoDB collection based on another
我有一个名为Mapping
的document
,其中包含一个_id
和一个称为Mappings的对象数组。 我还有一个名为NewMappings
collection
。 对于NewMappings
每个_id
,我需要在Mappings (of Mapping collection)
数组Mappings (of Mapping collection)
的数组)内进行搜索,并返回Mapping
的_id
。
我写了这样的东西,但是没有返回任何东西。
var d=db.NewMappings.find();
d.forEach(function(item){
db.matching.find({Mappings: {$elemMatch : {TargetId: item._id}}})
})
但是,此查询返回值
var d=db.NewMappings.find();
db.matching.find({Mappings: {$elemMatch : {TargetId: d[0]._id}}})
我想念什么吗? 请帮我。 我在黑暗中。 提前致谢。
一种方法,如果您只想查看结果,则为:
var d=db.NewMappings.find();
d.forEach(function(item){
db.matching.find({Mappings: {$elemMatch : {TargetId: item._id}}}).forEach(printjson)
})
您还可以使用聚合框架
听起来您正在尝试执行Join,而MongoDB中未明确支持该Join。 您将需要使用一些聚合函数来展平数据或使用mapreduce。
这是一个使用mapreduce重组信息的示例: http : //cookbook.mongodb.org/patterns/pivot/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.