A hidden member maintains a copy of the primary’s
data set but is invisible to client applications. Hidden members
are good for workloads with different usage patterns from the other
members in the replica set. Hidden members must always be
priority 0 members and
so cannot become primary. The db.isMaster() method does not
display hidden members. Hidden members, however, do vote in
In the following five-member replica set, all four secondary members
have copies of the primary’s data set, but one of the secondary members
Diagram of a 5 member replica set with a hidden priority 0 member.
Clients will not distribute reads with the appropriate read
preference to hidden members. As a result, these
members receive no traffic other than basic replication. Use hidden
members for dedicated tasks such as reporting and
backups. Delayed members
should be hidden.
In a sharded cluster, mongos do not interact with hidden
Hidden members do vote in replica set elections. If you stop a
hidden member, ensure that the set has an active majority or the
primary will step down.
For the purposes of backups, you can avoid stopping a hidden member
with the db.fsyncLock() and db.fsyncUnlock()
operations to flush all writes and lock the mongod instance
for the duration of the backup operation.