Database

db={"assettypes":[{"_id":1,"name":"Single Family","type":"location",},{"_id":2,"name":"Multi Family","type":"location",},{"_id":3,"name":"Walland","type":"insured",},],"assets":[{"_id":1,"name":"asset #1","assetType":1,"fields":[1,2]},{"_id":2,"name":"asset #2","assetType":2,"fields":[1]},{"_id":3,"name":"asset #3","assetType":3,"fields":[2]}],"policies":[{"_id":1,"assets":[1,2,3],}],"fields":[{"_id":1,"fieldType":1,"value":"test"},{"_id":2,"fieldType":1,"value":"test value 2"},],"fieldtypes":[{"_id":1,"key":"address",}]}

Query

db.policies.aggregate([{$lookup:{from:"assets",localField:"assets",foreignField:"_id",as:"assets",},},{$lookup:{from:"assettypes",let:{id:"$assets._id",fields:"$assets.fields",name:"$assets.displayName",atId:"$assets.assetType",},pipeline:[{$match:{$expr:{$eq:["$_id","$$atId"],},},},{$project:{_id:"$$id",assetId:"$$id",assetDisplayName:"$$name",assetFields:"$$fields",type:1,name:1,},},],as:"assets",},},{$unwind:{path:"$assets",},},{$unwind:{path:"$assets.fields",},},{$lookup:{from:"fieldtypes",let:{ftId:"$assets.fields.fieldType",value:"$assets.fields.value",ref:"$assets._id",},pipeline:[{$match:{$expr:{$eq:["$_id","$$ftId"],},},},{$addFields:{value:"$$value",assetId:"$$ref",},},],as:"assets.fields",},},])

Result