Database

db={"fields":[{"_id":ObjectId("5f05a51dc9e77c00014bb3b5"),"fieldName":"name","fieldType":"text"},{"_id":ObjectId("5f05a51dc9e77c00014b4523"),"fieldName":"address","fieldType":"text"}],"users":[{"_id":ObjectId("5f058db405c9fc60965ce243"),"name":"john","address":"US"}]}

Query

db.users.aggregate([{$addFields:{userFields:{$objectToArray:"$$ROOT"}}},{$unwind:"$userFields"},{$lookup:{from:"fields",let:{field:"$userFields.k"},pipeline:[{$match:{$expr:{$eq:["$$field","$fieldName"]}}},{$addFields:{value:"$$field"}}],as:"fields"}},{$unwind:"$fields"},{$group:{_id:"$_id",fields:{$push:"$fields"}}}])

Result