projections can have mixed includes and excludes if excludes is only _id

As per http://docs.mongodb.org/manual/reference/method/db.collection.find/

A projection cannot contain both include and exclude specifications, except for the exclusion of the _id field. In projections that explicitly include fields, the _id field is the only field that you can explicitly exclude.