Returning Object only if its join exists

I am having a booking table which stores the userId, sessionId and paymentId of the booking from three different tables. while quering for bookings of a particular user I want to return those booking which are in future from today but the start date is present in session which I have populating through mongoose.
This is the my populate query to join all the tables
[ "paymentDetails", "sessionDetails", "userDetails", { path: "sessionDetails", match: {startTime: {$gte: req.query.future || 0, $lte: req.query.past || 99999999999999}}, populate: [ "photoDetails", "creatorDetails", { path: "creatorDetails", populate: "photoDetails", }, ], }, ]

But this returns the booking even in the case it does not match, with null on the sessionDetails option. How should i make the populate query to get what I desire.