title: pymongo: Advantage of using MongoReplicaSetClient?
body: <p>It seems that both <a href="http://api.mongodb.org/python/current/api/pymongo/mongo_client.html" rel="nofollow noreferrer">MongoClient</a> and <a href="http://api.mongodb.org/python/current/api/pymongo/mongo_replica_set_client.html" rel="nofollow noreferrer">MongoReplicaSetClient</a> can connect to mongo replica sets. In fact, their documentation pages are nearly identical - same options, same methods, etc - except that the latter's constructor requires me to specify a replicaSet.</p>
  
  <p>In both cases, we may specify a read preference. In both cases, we must handle the AutoReconnect exception if a stepdown occurs.</p>
  
  <p>So my questions are:</p>
  
  <ol>
  <li><p>Why would one use one versus the other, since one can perform the exact same operations with both?</p></li>
  <li><p>Both can perform secondary reads, correct? The documentation says that the advantage of a ReplicaSetClient is that we can do secondary reads, but <a href="http://api.mongodb.org/python/current/api/pymongo/index.html#pymongo.read_preferences.ReadPreference" rel="nofollow noreferrer">clearly</a> they are supported in both.</p></li>
  <li><p>The <a href="http://api.mongodb.org/python/current/examples/high_availability.html#mongoreplicasetclient" rel="nofollow noreferrer">documentation</a> says that the ReplicaSetClient features "replica set health monitoring." What exactly does that mean? Are there new methods I can invoke which tell me about a replset's health that I cannot otherwise do with MongoClient?</p></li>
  <li><p>In <a href="https://stackoverflow.com/a/17859283/3788">theory</a> a MongoReplicaSetClient will connect to all members of the replset, rather than just one. This is false: you may munge or omit any of the servers in the connection string, and both MongoClient and MongoReplicaSetClient are still able to connect. Am I missing something?</p></li>
  </ol>