cursor.readPref(mode, tagSet, hedgeOptions)
This page documents a mongosh
method. This is not the documentation for a language-specific driver, such as Node.js.
For MongoDB API drivers, refer to the language-specific MongoDB driver documentation.
Append readPref()
to a cursor to control how the client routes the query to members of the replica set.
You must apply readPref()
to the cursor before retrieving any documents from the database.
Parameter
Type
Description
string
One of the following read preference modes: primary
, primaryPreferred
, secondary
, secondaryPreferred
, or nearest
array of documents
Optional. A tag set used to target reads to members with the specified tag(s). tagSet
is not available if using primary
.
For details, see Read Preference Tag Set Lists.
document
IMPORTANT: Starting in MongoDB 8.0, hedged reads are deprecated. Queries that specify the read preference nearest
no longer use hedged reads by default. If you explicitly specify a hedged read, MongoDB performs a hedged read and logs a warning.
Optional. A document that specifies whether to enable the use of hedged reads.
{ enabled: <boolean> }
The enabled
field defaults to true; i.e. specifying an empty document { }
is equivalent to specifying { enabled: true }
.
readPref()
does not support the Read Preference maxStalenessSeconds
option for read preference.
This method is available in deployments hosted in the following environments:
MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
MongoDB Enterprise: The subscription-based, self-managed version of MongoDB
MongoDB Community: The source-available, free-to-use, and self-managed version of MongoDB
The following operation uses the read preference mode to target the read to a secondary member.
db.collection.find({ }).readPref( "secondary")
To target secondaries with specific tags, include both the mode and the tagSet array:
db.collection.find({ }).readPref( "secondary", [ { "datacenter": "B" }, { "region": "West"}, { } ])
During the secondary selection process, MongoDB tries to find secondary members with the datacenter: "B"
tag first.
If found, MongoDB limits the eligible secondaries to those with the datacenter: "B"
tag and ignores the remaining tags.
If none are found, then, MongoDB tries to find secondary members with the "region": "West"
tag.
If found, MongoDB limits the eligible secondaries to those with the "region": "West"
tag.
If none are found, MongoDB uses any eligible secondaries.
See Order of Tag Matching for details.
For sharded clusters, you can enable hedged reads for non-primary read preference. To use hedged reads, the mongos
must have enabled support
for hedged reads (the default) and the non-primary
read preferences must enable the use of hedged reads.
To target secondaries on sharded clusters using hedged reads, include both the mode and the hedgeOptions, as in the following examples:
Without a tag set
db.collection.find({ }).readPref( "secondary", null, { enabled: true } )
With a tag set
db.collection.find({ }).readPref( "secondary", [ { "datacenter": "B" }, { } ], { enabled: true } )
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4