Database

[{"method":1,"item":1,"rank":1},{"method":2,"item":1,"rank":2},{"method":3,"item":1,"rank":3},{"method":4,"item":1},{"method":5,"item":1},]

Query

db.collection.aggregate([{$match:{item:1,}},{$project:{method:1,item:1,rank:{$ifNull:["$rank",0]}}},{$group:{_id:"$item",data:{$addToSet:"$$ROOT"},min_value:{$min:"$rank"},max_value:{$max:"$rank"}}},{$unwind:"$data"},{$match:{$or:[{$expr:{$eq:["$data.rank","$max_value"]}},{$expr:{$eq:["$data.rank","$min_value"]}},]}}])

Result