Hidden members are part of a replica set but cannot become
primary and are invisible to client applications. Hidden members
may vote in elections. For a
more information on hidden members and their uses, see
Hidden Replica Set Members.
The most common use of hidden nodes is to support delayed
members. If you only need to prevent a member from
becoming primary, configure a priority 0 member.
If the settings.chainingAllowed setting
allows secondary members to sync from other secondaries, MongoDB by
default prefers non-hidden members over hidden members when selecting
a sync target. MongoDB will only choose hidden members as a last
resort. If you want a secondary to sync from a hidden member, use the
replSetSyncFrom database command to override the default
sync target. See the documentation for replSetSyncFrom
before using the command.
To configure a secondary member as hidden, set its
members[n].priority value to 0 and
set its members[n].hidden value to
true in its member configuration:
The following example hides the secondary member currently at the index
0 in the members array. To configure
a hidden member, use the following sequence of operations in a
mongo shell connected to the primary, specifying the member
to configure by its array index in the
members array:
After re-configuring the set, this secondary member has a priority of
0 so that it cannot become primary and is hidden. The other members
in the set will not advertise the hidden member in the
isMaster or db.isMaster() output.
When updating the replica configuration object, access the replica set
members in the members array with the
array index. The array index begins with 0. Do not confuse
this index value with the value of the
members[n]._id field in each document in
the members array.
Warning
The rs.reconfig() shell method can force the current
primary to step down, which causes an election. When the primary steps down, the
mongod closes all client connections. While this
typically takes 10-20 seconds, try to make these changes during
scheduled maintenance periods.
Avoid reconfiguring replica sets that contain members of different
MongoDB versions as validation rules may differ across MongoDB versions.