繁体   English   中英

根据另一个搜索MongoDB集合

[英]Searching a MongoDB collection based on another

我有一个名为Mappingdocument ,其中包含一个_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM