実稼働環境 (シャードがそれぞれのレプリカ セットであることを意味します) では、次のように接続行で 2 つの異なるシャードを指定します。
$m = new MongoClient("mongodb://mongos1.example.com:27017,mongos2.example.com:27017");
mongos1,example.com が失敗した場合、PHP ドライバーは mongos2.example.com に接続しようとしていないようです。これはドライバーに固有のものですか、それとも強制的に接続する方法がありますか (サーバーごとに個別の try および catch ブロックを実装することによって回避する以外に)。