Database

db={Users:[{_id:1,name:"josh",productIds:[1,3]},{_id:2,name:"sheldon",productIds:[2]}],Products:[{_id:1,name:"table",price:45,userId:1},{_id:2,name:"television",price:25,userId:2},{_id:3,name:"chair",price:14,userId:1}]}

Query

db.Users.aggregate([{$project:{productIds:0}},{$lookup:{from:"Products",let:{user_id:"$_id"},pipeline:[{$match:{$expr:{$eq:["$userId","$$user_id"]}}},{$lookup:{from:"Users",localField:"userId",foreignField:"_id",as:"user"}},{$unwind:"$user"},{$project:{"user.productIds":0}}],as:"products"}}])

Result