Se você deseja apenas uma lista (distinta) das tags, o uso distinto será melhor. Map/Reduce será mais lento e não poderá usar um índice para a parte javascript.
http://docs.mongodb.org/manual/reference/ método/db.collection.distinct/
db.coll.distinct("tags", {type:1})
Retornará um conjunto de tags para type=1.