mongodb聚合引用字段

时间:2015-10-23 12:52:00

标签: mongodb mongodb-query aggregation-framework

我有2个集合,其中一个被引用到第二个集合中。现在我想执行一个聚合查询,根据引用它的第一个字段对第二个集合进行分组

我的模型首先是:

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 of second document,
"region": "region"
}

我需要在每个first.region上对第二个集合进行分组。可能吗?

1 个答案:

答案 0 :(得分:-1)

有两种选择。

db.first.find({},{region:1}).forEach(function(doc) {
db.second.find({ "firsts" : doc.region });

});

var data = db.members.find({},{region:1}).toArray();
db.second.find({ "firsts" : { "$in" : data} });