Database
[{"color":"red","size":2,"brand":"A"},{"color":"blue","size":5,"brand":"A"},{"color":"blue","size":3,"brand":"A"},{"color":"red","size":7,"brand":"A"}]
Query
db.collection.aggregate([{"$group":{"_id":"$brand","red":{$push:{$cond:[{$eq:["$color","red"]},"$$ROOT.size","$$REMOVE"]}},"blue":{$push:{$cond:[{$eq:["$color","blue"]},"$$ROOT.size","$$REMOVE"]}}}},{$project:{brand:"$brand",min:{$min:"$blue"},max:{$max:"$red"}}}])