Database
db={"tasklists":[{"_id":1,"tasklist":[1,2,3,4]},{"_id":2,"tasklist":[5,6,7]}],"tasks":[{"_id":1},{"_id":2},{"_id":3},{"_id":5}]}
Query
db.tasklists.aggregate([{"$lookup":{"from":"tasks","let":{"tasklist":"$tasklist"},"pipeline":[{"$match":{"$expr":{"$in":["$_id","$$tasklist"]}}}],"as":"valid"}},{"$addFields":{"valid":{"$map":{"input":"$valid","as":"v","in":"$$v._id"}}}},{"$addFields":{"tasklist":{"$filter":{"input":"$tasklist","as":"t","cond":{"$in":["$$t","$valid"]}}}}},{"$unset":["valid"]}])