Database
db={tables:[{"_id":"641ce65852a7ccd2f4a7b298","name":"table name","description":"table description","columns":[{"_id":"641ce65852a7ccd2f4a7b299","name":"column 1","dataType":"String"},{"_id":"641cf95543a5f258bfaf69e3","name":"column 2","dataType":"Number"}]}],table_rows:[{"tableId":"641ce65852a7ccd2f4a7b298","641ce65852a7ccd2f4a7b299":"Example string","641cf95543a5f258bfaf69e3":101},{"tableId":"641ce65852a7ccd2f4a7b298","641ce65852a7ccd2f4a7b299":"Example string2","641cf95543a5f258bfaf69e3":102}]}
Query
db.table_rows.aggregate([{$match:{"tableId":"641ce65852a7ccd2f4a7b298"}},{$unset:["tableId","_id"]},{$project:{rows:{$objectToArray:"$$ROOT"}}},{$unwind:"$rows"},{$group:{_id:"$rows.k",values:{$push:"$rows.v"}}},{$lookup:{from:"tables",let:{"tableId":"641ce65852a7ccd2f4a7b298",colId:"$_id"},pipeline:[{$match:{$expr:{$eq:["$_id","$$tableId"]}}},{$project:{_id:0,coldata:{$first:{$filter:{input:"$columns",cond:{$eq:["$$colId","$$this._id"]}}}}}}],as:"colName"}},{$project:{colName:{$first:"$colName.coldata.name"},values:1,_id:0}}])