Database

db={"rootCollection":[{"_id":1},{"_id":2},{"_id":3}],"searchCollection":[/** put your 20k+ id here*/{"_id":2},{"_id":4},{"_id":5}]}

Query

db.rootCollection.aggregate([{"$lookup":{"from":"searchCollection","localField":"_id","foreignField":"_id","as":"searchLookup"}},{"$addFields":{"matched":{$ne:["$searchLookup",[]]}}},{$match:{matched:true}}/** perform your other operations*/])

Result