MongoDB supports setting slaveOk() in all these places(in the order of scope): Mongo, DB, Collection, DBCursor.
Of these, except DBCursor, everything else is shared per VM. Often decisions about whether to use slaves or not will be tied to the use-case and not to the fact that it is a certain collection.
I would propose making that an option on the MongoTemplate instance-level. I can then have two templates and use the appropriate one for the use-case on hand. Since the template is provisioned for a Repository, the same could be done there too.
The alternative is to add it to all find-ish methods in MongoTemplate. That would pollute the API surface area in my opinion. Also, the Repository interface will not be clean using this.
For our usage, I'm currently extending MongoTemplate and overriding all doFind(..) methods to effect this by a custom CursorPreparer. I can submit a patch when I'm done if it is deemed generally useful for the product.