“However, the data on all other shards will remain available, and it is possible to read and write data to the other shards. However, your application must be able to deal with partial results, and you should investigate the cause of the interruption and attempt to recover the shard as soon as possible.”
But in my case i always get “errmsg” : “None of the hosts for replica set XXX could be contacted.”, despite the fact i actually asked data, which are located in “live” shard (replica set).
Yes you are right. You could fetch data from the cluster even a shard is down. But it is possible only when mongos could target those data from the live shards through shard keys. That means, the query should include the shard key. If not, mongos will broadcast the query request to all shard and receives error when one is not up.