如何在mongodb中使用GROUPBY?
我想用逗号分隔值。那么如何在聚合框架中使用group/concat呢 文档联系方式如何在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" :
{
"_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}}}。。。。。。。。。非常感谢你。