- Reference >
mongo
Shell Methods >- Sharding Methods >
- sh.addTagRange()
sh.addTagRange()¶
On this page
Definition¶
-
sh.
addTagRange
(namespace, minimum, maximum, tag)¶ Changed in version 3.4: This method aliases to
sh.updateZoneKeyRange()
in MongoDB 3.4. The functionality specified below still applies to MongoDB 3.2. MongoDB 3.4 provides Zone sharding as the successor to tag-aware sharding.Attaches a range of shard key values to a shard tag created using the
sh.addShardTag()
method.Starting in MongoDB 4.0.2, you can run
updateZoneKeyRange
database command and its helperssh.updateZoneKeyRange()
andsh.addTagRange()
on an unsharded collection or a non-existing collection.sh.addTagRange()
takes the following arguments:Parameter Type Description namespace
string The namespace of the sharded collection to tag. minimum
document The minimum value of the shard key range to include in the tag. The minimum is an inclusive match. Specify the minimum value in the form of <fieldname>:<value>
. This value must be of the same BSON type or types as the shard key.maximum
document The maximum value of the shard key range to include in the tag. The maximum is an exclusive match. Specify the maximum value in the form of <fieldname>:<value>
. This value must be of the same BSON type or types as the shard key.tag
string The name of the tag to attach the range specified by the minimum
andmaximum
arguments to.Use
sh.addShardTag()
to ensure that the balancer migrates documents that exist within the specified range to a specific shard or set of shards.Only issue
sh.addTagRange()
when connected to amongos
instance.
Behavior¶
Bounds¶
Zone ranges are always inclusive of the lower boundary and exclusive of the upper boundary.
Initial Chunk Distribution¶
Starting in MongoDB 4.0.2, you can run
updateZoneKeyRange
database command and its helpers
sh.updateZoneKeyRange()
and sh.addTagRange()
on
an unsharded collection or a non-existing collection.
Tip
Changed in version 4.0.3: By defining the zones and the zone ranges before sharding an empty or a non-existing collection, the shard collection operation creates chunks for the defined zone ranges as well as any additional chunks to cover the entire range of the shard key values and performs an initial chunk distribution based on the zone ranges. This initial creation and distribution of chunks allows for faster setup of zoned sharding. After the initial distribution, the balancer manages the chunk distribution going forward.
See Pre-Define Zones and Zone Ranges for an Empty or Non-Existing Collection for an example.
Dropped Collections¶
Dropping a collection deletes its associated zone/tag ranges.
In earlier versions, MongoDB does not remove the tag associations for a dropped collection, and if you later create a new collection with the same name, the old tag associations will apply to the new collection.
Example¶
Given a shard key of {state: 1, zip: 1}
, the following operation
creates a tag range covering zip codes in New York State: