【问题标题】:mongodb aggregation referenced fieldsmongodb聚合引用字段
【发布时间】:2015-10-23 23:52:41
【问题描述】:

我有 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 上对第二个集合进行分组。这可能吗?

【问题讨论】:

  • 我们不知道这是否可能。也许您应该向我们展示您收藏的示例文档以及预期的结果。
  • 我刚刚编辑了我的问题
  • 您的查询输出应该是什么样子?这次请确保正确格式化您的代码。

标签: mongodb mongodb-query aggregation-framework


【解决方案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} });

【讨论】:

  • 我需要执行聚合查询!
猜你喜欢
  • 2023-03-22
  • 2019-06-17
  • 2018-11-25
  • 2019-01-17
  • 1970-01-01
  • 2023-01-04
  • 1970-01-01
  • 2014-10-19
  • 2019-04-06
相关资源
最近更新 更多