Database
db={"tasklists":[{"_id":1,"afield":2,"tasklist":[1,2,3,4]},{"_id":2,"afield":3,"tasklist":[5,6,7]}],"tasks":[{"_id":1},{"_id":2},{"_id":3},{"_id":5}]}
Query
db.tasklists.aggregate([{"$unwind":{"path":"$tasklist"}},{"$lookup":{"from":"tasks","localField":"tasklist","foreignField":"_id","as":"joined"}},{"$match":{"$expr":{"$gt":[{"$size":"$joined"},0]}}},{"$unset":["joined"]},{"$group":{"_id":"$_id","tasklist":{"$push":"$tasklist"},"afield":{"$first":"$afield"}}}])