On this page
cursor.readPref()
On this page
Definition
cursor.readPref( mode, tagSet )-
Append
readPref()to a cursor to control how the client routes the query to members of the replica set.Note
You must apply
readPref()to the cursor before retrieving any documents from the database.
Parameters
| Parameter | Type | Description |
|---|---|---|
mode |
string | One of the following read preference modes: primary, primaryPreferred, secondary, secondaryPreferred, or nearest |
tagSet |
array of documents | Optional. A tag set used to target reads to members with the specified tag(s). For details, see Tag Set. |
cursor.setReadPref() does not support the maxStalenessSeconds option for read preference.
Example
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 the tag set array:
db.collection.find({ }).readPref(
"secondary",
[
{ "datacenter": "B" }, // First, try matching by the datacenter tag
{ "region": "West"}, // If not found, then try matching by the region tag
{ } // If not found, then use the empty document to match all eligible members
]
)
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.
- If found, MongoDB limits the eligible secondaries to those with the
See Order of Tag Matching for details.
See also