提问人:dsib 提问时间:11/1/2023 更新时间:11/1/2023 访问量:21
聚合查找是提供用于匹配值的对象数组。如何将该数组组合成一个对象?
Aggregate lookup is giving array of objects for matching values. How to combine that array into one object?
问:
这些是我的收藏,coll1 和 coll2。我正在执行查找以从这些集合中获取数据。现在,由于 coll2 有多个匹配的文档,我得到了一个带有 coll1 结果的对象数组。我已经添加了详细信息供您参考。 coll1:
[
{
"name":"n1",
"pid":"p1",
"other":"other details"
}
]
coll2:
[
{
"name":"n1",
"pid":"p1",
"pname":"pname1",
"padd":"padd1"
},
{
"name":"n1",
"pid":"p1",
"pname":"pname2",
"padd":"padd2"
}
]
这是我的查询:
[
{
"$lookup":{
"from":"coll2",
"let":{
"name":"$name",
"pid":"$pid"
},
"pipeline":[
{
"$match":{
"$expr":{
"$and":[
{
"$eq":[
"$name",
"$$name"
]
},
{
"$eq":[
"$pid",
"$$pid"
]
}
]
}
}
}
],
"as":"newProp"
}
}
]
我得到的结果如下:
[
{
"name":"n1",
"pid":"p1",
"other":"other details",
"newProp":[
{
"name":"n1",
"pid":"p1",
"pname":"pname1",
"padd":"padd1"
},
{
"name":"n1",
"pid":"p1",
"pname":"pname2",
"padd":"padd2"
}
]
}
]
我希望结果为具有键值更新的单个对象,如下所示:
[
{
"name":"n1",
"pid":"p1",
"other":"other details",
"newProp":{
"name":"n1",
"pid":"p1",
"pname1":"padd1",
"pname2":"padd2"
}
}
]
提前致谢。
答: 暂无答案
评论