You add shards to a sharded cluster after you create the cluster or any time that you need to add capacity to the cluster. If you have not created a sharded cluster, see Deploy a Self-Managed Sharded Cluster.
All shards must be replica sets.
Considerations
Balancing
When you add a shard to a sharded cluster, you affect the balance of chunks among the shards of a cluster for all existing sharded collections. The balancer will begin migrating chunks so that the cluster will achieve balance. See Balancer Internals for more information.
Capacity Planning
When adding a shard to a cluster, always ensure that the cluster has enough capacity to support the migration required for balancing the cluster without affecting legitimate production traffic.
DDL Operations
If you add a shard while your cluster executes a DDL operation
(operation that modifies a collection such as
reshardCollection), the operation that adds a shard only
executes after the concurrent DDL operation finishes.
Add a Shard to a Cluster
You interact with a sharded cluster by connecting to a mongos
instance.
- In - mongosh, connect to the- mongosinstance. For example, if a- mongosis accessible at- mongos0.example.neton port- 27017, issue the following command:- mongosh --host mongos0.example.net --port 27017 
- Add a shard replica set to the cluster using the - sh.addShard()method, as shown in the example below. Issue- sh.addShard()separately for each shard. Specify the name of the replica set and a member of the set.- Note- Optional- The following example illustrates adding a shard with - sh.addShard():- To add a shard replica set named - rs1with a member running on port- 27018on- mongodb0.example.net, issue the following command:- sh.addShard( "rs1/mongodb0.example.net:27018" ) - Note- It might take some time for chunks to migrate to the new shard.