This version of the documentation is archived and no longer supported.



sh.addShardToZone(shard, zone)

New in version 3.4: Associates a shard with a zone. MongoDB associates this shard with the given zone. Chunks that are covered by the zone are assigned to shards associated with the zone.

Parameter Type Description
shard string

The name of the shard to which to associate the zone.

zone string

The name of the zone to associate with the shard.

Only issue sh.addShardToZone() when connected to a mongos instance.


You can associate a zone with multiple shards, and a shard can associate with multiple zones.

See the zone manual page for more information on zones in sharded clusters.


MongoDB effectively ignores zones that do not have at least one range of shard key values associated with it.

To associate a range of shard key values with a zone, use the sh.updateZoneKeyRange() method.


For sharded clusters that enforce access control, you must authenticate as a user whose privileges include either:

  • update on the shards collection in the config database; or, alternatively,
  • enableSharding on the cluster resource (Starting in version 3.6.16).

The clusterAdmin or clusterManager built-in roles have the appropriate permissions for issuing sh.addShardToZone(). See the Role-Based Access Control manual page for more information.


The following example adds three zones, NYC, LAX, and NRT, associating each to a shard:

sh.addShardToZone("shard0000", "JFK")
sh.addShardToZone("shard0001", "LAX")
sh.addShardToZone("shard0002", "NRT")

A shard can associate with multiple zones. The following example associates LGA to shard0000:

sh.addShardToZone("shard0000", "LGA")

shard0000 associates with both the LGA zone and the JFK zone. In a balanced cluster, MongoDB routes reads and writes covered by either zone to shard0000.