Database

[{name:"V",type:"Trap"},{name:"J",type:"Magic"},{name:"B",type:"Effect"}]

Query

db.collection.aggregate([{$sort:{type:1,name:1}},{$match:{$or:[{type:{$gt:"Effect"}},{$and:[{type:"Effect"},{name:{$gt:"K"}}]}]}},{$limit:1}])

Result