mongodb聚合引用字段
我有两个集合,其中一个被引用到第二个集合中。现在,我想执行一个聚合查询,根据引用到其中的第一个集合的字段对第二个集合进行分组 我的第一个模型是:mongodb聚合引用字段,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我有两个集合,其中一个被引用到第二个集合中。现在,我想执行一个聚合查询,根据引用到其中的第一个集合的字段对第二个集合进行分组 我的第一个模型是: first:{_id:ObjectId, name:String, region:String} the second has this model `second:{_id:ObjectId, name:String, firsts:[$first]} 我的文档如下所示: 第一份文件: { "_id" : ObjectId("562a0f
first:{_id:ObjectId, name:String, region:String}
the second has this model `second:{_id:ObjectId, name:String, firsts:[$first]}
我的文档如下所示:
第一份文件:
{
"_id" : ObjectId("562a0f68f6a47a33b4000a52"),
"name" : "Name",
"region" : "Sicilia"
}
{
"_id" : ObjectId("562a1250249c98273459be4a"),
"name" : "Name",
"firsts" : [
{ "first" : ObjectId("562a0f68f6a47a33b4000a52")},
{ "first" : ObjectId("562a0f68f6a47a33b400084d")}
]
}
第二份文件:
{
"_id" : ObjectId("562a0f68f6a47a33b4000a52"),
"name" : "Name",
"region" : "Sicilia"
}
{
"_id" : ObjectId("562a1250249c98273459be4a"),
"name" : "Name",
"firsts" : [
{ "first" : ObjectId("562a0f68f6a47a33b4000a52")},
{ "first" : ObjectId("562a0f68f6a47a33b400084d")}
]
}
`
结果我想要这个
{
"_id": ObjectId of second document,
"region": "region"
}
我需要在每个第一个区域上对第二个集合进行分组。这可能吗?有两种选择
db.first.find({},{region:1}).forEach(function(doc) {
db.second.find({ "firsts" : doc.region });
})
或
我们不知道这是否可能。也许您应该向我们展示您的集合中的示例文档以及预期的结果。我刚刚编辑了我的问题,您的查询的输出应该是什么样的?请确保这次能很好地格式化您的代码。我需要执行聚合查询!