mongoDB展开&x2B;查找返回多个对象
我试图在MongoDB中构建一个查询,以便合并来自两个集合的数据:我有一个应用程序集合和一个功能集合,每个应用程序包含一个功能数组\u id,我希望每个应用程序包含一个功能对象数组:mongoDB展开&x2B;查找返回多个对象,mongodb,aggregation-framework,database,Mongodb,Aggregation Framework,Database,我试图在MongoDB中构建一个查询,以便合并来自两个集合的数据:我有一个应用程序集合和一个功能集合,每个应用程序包含一个功能数组\u id,我希望每个应用程序包含一个功能对象数组: app{ name, description, [requirements_id1, requirements_id2 ... ] } feature{ name, description } 在放松和查找之后,我想获得如下内容 app{ name,
app{
name,
description,
[requirements_id1, requirements_id2 ... ]
}
feature{
name,
description
}
在放松和查找之后,我想获得如下内容
app{
name,
description,
[feature1{
name,
description
},
feature2{
name,
description
}]
}
我在mongodb文档中编写了这个查询
db.app.aggregate([
{
$unwind: "$features"
},
{
$lookup:
{
from: "features",
localField: "features",
foreignField: "_id",
as: "features"
}
},
{
$match: { "_id": '123456789' }
}
])
它可以工作,但不是一个包含一系列特征的单个对象,而是一个包含一系列特征的对象,每个特征只有一个
[app{
name,
description,
[feature1{
name,
description
}]
}
app{
name,
description,
[feature2{
name,
description
}]
}]
当然,除了“功能”字段外,应用程序对象是相同的。我如何才能摆脱获得一个包含多个功能的单一应用程序的问题?删除
$unwind
如果您使用的是3.4版或更高版本,请在id和$push
上使用$group
功能以获得正确的形状。感谢您的回答,似乎只需从查询中删除$unwind即可!