如果你还不了解 mongodb sharded cluster,可以先看文档认识一下

当你考虑使用 sharded cluster 时,通常是要解决如下2个问题
存储容量受单机限制,即磁盘资源遭遇瓶颈。
读写能力受单机限制(读能力也可以在复制集里加 secondary 节点来扩展),可能是 cpu、内存或者网卡等资源遭遇瓶颈,导致读写能力无法扩展。
如果你没有遇到上述问题,使用 mongodb 复制集就足够了,管理维护上比 sharded cluster 要简单很多。
当你决定要使用 sharded cluster 时,问题来了,应该部署多少个 shard、多少个 mongos?这个问题首富已经指点过我们,『先定一个小目标,比如先部署上1000个 shard』,然后根据需求逐步扩展。
回到正题,shard、mongos 的数量归根结底是由应用需求决定,如果你使用 sharding 只是解决 『海量数据存储』的问题,访问并不多,那么很简单,假设你单个 shard 能存储 m, 需要的存储总量是 n。