如何在mongodb中使用GROUPBY?

如何在mongodb中使用GROUPBY?,mongodb,mongoose,mongodb-query,aggregation-framework,Mongodb,Mongoose,Mongodb Query,Aggregation Framework,我想用逗号分隔值。那么如何在聚合框架中使用group/concat呢 文档联系方式 { "_id" : "9c612c95054fb46e3de8dee8", "name" : "name1", "oppID" : [ "5c612c95054fb46e3de8bcc5", "5bd6b334cba7d2241a3ba9d9" ] }, { "_id" : "1c612c95054fb46e3de8dcde9", "name" :

我想用逗号分隔值。那么如何在聚合框架中使用group/concat呢

文档联系方式

{
  "_id" : "9c612c95054fb46e3de8dee8",
  "name" : "name1",
  "oppID" : [
        "5c612c95054fb46e3de8bcc5",
        "5bd6b334cba7d2241a3ba9d9"
       ]
},
{
  "_id" : "1c612c95054fb46e3de8dcde9",
  "name" : "name2",
  "oppID" : [
        "5c612c95054fb46e3de8bcc5",
        "5bd6b334cba7d2241a3ba9d9"
       ]
}
文档机会

{
  "_id" : "5c612c95054fb46e3de8bcc5",
  "name" : "opp name 01",
},
{
  "_id" : "5bd6b334cba7d2241a3ba9d9",
  "name" : "opp name 02",
},
我想获得如下联系人列表

{
   "_id" : "9c612c95054fb46e3de8dee8",
   "oppName" : "opp name 01, opp name 02"
},
{
   "_id" : "1c612c95054fb46e3de8dcde9",
   "oppName" : "opp name 01, opp name 02"
}
您需要运行以从两个集合中获取数据,然后使用将数组转换为单个字符串

db.contact.aggregate([        
    {
        $lookup: {
            from: "opportunity",
            localField: "oppID",
            foreignField: "_id",
            as: "opportunities"
        }
    },
    {
        $project: {
            _id: 1,
            oppName: {
                $reduce: {
                    input: "$opportunities",
                    initialValue: "",
                    in: {
                        $cond: [ { $eq: [ "$$value", "" ] }, "$$this.name", { $concat: [ "$$value", ", ", "$$this.name" ] } ]
                    }
                }
            }
        }
    }
])

@ManojGhediya只需删除
$match
,然后在我添加$group时修改我的答案,然后在其工作之后。{$group:{{$id:$$id”,“opportunityArr:{$push:$opportunity}}}。。。。。。。。。非常感谢你。