Database

db={interests:[{"_id":ObjectId("62b489664cbb9bc8c947f19f"),"user_id":ObjectId("61a775da4cbb9bc8c947edd9"),"product_types":[{"type":NumberLong(1),"product_id":ObjectId("62b4890f4cbb9bc8c947e5ef"),},{"type":NumberLong(1),"product_id":ObjectId("62b4890f4cbb9bc8c947e5ed"),}]}],products:[{"_id":ObjectId("62b4890f4cbb9bc8c947e5ef"),"name":"olive",},{"_id":ObjectId("62b4890f4cbb9bc8c947e5ed"),"name":"something",},]}

Query

db.interests.aggregate([{$lookup:{from:"products",localField:"product_types.product_id",foreignField:"_id",as:"productInterestData"}},{$set:{"product_types":{$map:{input:"$product_types",in:{$mergeObjects:["$$this",{product:{$arrayElemAt:["$productInterestData",{$indexOfArray:["$productInterestData._id","$$this.product_id"]}]}}]}}}}},{$unset:"productInterestData"}])

Result