Database
[{_id:{ip:"ip1",type:"type1"},count:10},{_id:{ip:"ip1",type:"type2"},count:20},{_id:{ip:"ip1",type:"type3"},count:30},{_id:{ip:"ip1",type:"type1"},count:10},{_id:{ip:"ip2",type:"type2"},count:30},{_id:{ip:"ip2",type:"type3"},count:20}]
Query
db.collection.aggregate([{$group:{_id:"$_id.ip",docs:{$push:"$$ROOT"},maxCount:{$max:"$count"}}},{$replaceRoot:{newRoot:{$arrayElemAt:[{"$filter":{input:"$docs",cond:{$eq:["$$this.count","$maxCount"]}}},0]}}}])