आपको दो अतिरिक्त चरणों की आवश्यकता है। सबसे पहले आप $reduce
चला सकते हैं ExerciseDetail
flatten को समतल करने के लिए जो अब सरणियों की एक सरणी है। एक बार यह हो जाने के बाद आप $map
चला सकते हैं। नेस्टेड $filter
के साथ Sets
को पेयर करने के लिए ExerciseDetails
के साथ :
{
$addFields: {
ExerciseDetail: {
$reduce: {
input: "$ExerciseDetail",
initialValue: [],
in: {
$concatArrays: [ "$$value", "$$this" ]
}
}
}
}
},
{
$project: {
_id: 1,
Sets: {
$map: {
input: "$Sets",
as: "set",
in: {
$let: {
vars: {
exDetail: {
$arrayElemAt: [
{ $filter: { input: "$ExerciseDetail", cond: { $eq: [ "$$this._id", "$$set.ExerciseId" ] } } },
0
]
}
},
in: {
$mergeObjects: [
"$$set", "$$exDetail"
]
}
}
}
}
}
}
}