Database

db={sessions:[{_id:1,created_at:"01/01/2021"},{_id:2,created_at:"02/01/2021"},{_id:3,created_at:"03/01/2021"}],answers:[{_id:1,value:"Name1",sessionId:1,typeofField:"name"},{_id:2,value:"Firstname1",sessionId:1,typeofField:"firstname"},{_id:3,value:"Date of birth1",sessionId:1,typeofField:"birthdate"},{_id:4,value:"Name2",sessionId:2,typeofField:"name"},{_id:5,value:"Firstname2",sessionId:2,typeofField:"firstname"},{_id:6,value:"Date of birth2",sessionId:2,typeofField:"birthdate"}]}

Query

db.sessions.aggregate([{$lookup:{from:"answers",localField:"_id",foreignField:"sessionId",pipeline:[{$addFields:{keyValue:[["$typeofField","$value"]]}},{$replaceRoot:{newRoot:{"$arrayToObject":"$keyValue"}}}],as:"allAnswers"}},{$replaceRoot:{newRoot:{"$mergeObjects":[{"$mergeObjects":"$allAnswers"},"$$ROOT"]}}},{$unset:"allAnswers"}])

Result