Many-to-many relationships between multiple collections

and

makes me guess that you will have one collection per location type because each location type has different attributes. If that is the case then it is a big NO NO. It is very SQLish.

The flexible-schema nature of MongoDB, allows you to have all location types within the same collection and each type have their own set of attributes.