Perhaps surround this with an if statement and only re-set the read preference if it is not already MongoClient::RP_PRIMARY?