-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
Mongo.setReadPref.txt
105 lines (66 loc) · 2.64 KB
/
Mongo.setReadPref.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
===================
Mongo.setReadPref()
===================
.. default-domain:: mongodb
.. contents:: On this page
:local:
:backlinks: none
:depth: 1
:class: singlecol
Definition
----------
.. method:: Mongo.setReadPref(mode, tagSet)
Call the :method:`~Mongo.setReadPref()` method on a :method:`Mongo
<db.getMongo()>` connection object to control how the client will
route all queries to members of the replica set.
.. list-table::
:header-rows: 1
:widths: 20 20 80
* - Parameter
- Type
- Description
* - :ref:`mode <mongo-setReadPref-mode>`
- string
- .. _mongo-setReadPref-mode:
One of the following :term:`read preference` modes:
:readmode:`primary`, :readmode:`primaryPreferred`,
:readmode:`secondary`, :readmode:`secondaryPreferred`, or
:readmode:`nearest`.
* - ``tagSet``
- array
- Optional. A tag set used to specify custom read preference modes. For details, see :ref:`replica-set-read-preference-tag-sets`.
Examples
--------
.. _allow-reads-from-secondaries:
Specify Read Preference Mode
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The following operation sets the read preference :ref:`mode
<mongo-setReadPref-mode>` to target the read to a secondary member.
This implicitly allows reads from secondaries.
.. code-block:: javascript
db.getMongo().setReadPref('secondary')
Specify Read Preference Tag Set
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To set a read preference that uses a tag set, specify an array of tag
sets as the second argument to :method:`Mongo.setReadPref()`, as in the
following:
.. code-block:: javascript
db.getMongo().setReadPref('primaryPreferred', [ { "dc": "east" } ] )
You can specify multiple tag sets, in order of preference, as in the
following:
.. code-block:: javascript
db.getMongo().setReadPref('secondaryPreferred',
[ { "dc": "east", "use": "production" },
{ "dc": "east", "use": "reporting" },
{ "dc": "east" },
{}
] )
If the replica set cannot satisfy the first tag set, the client will
attempt to use the second read preference. Each tag set can contain zero
or more field/value tag pairs, with an "empty" document acting as a
wildcard which matches a replica set member with any tag set or no tag
set.
.. note::
You must call :method:`Mongo.setReadPref()` on the connection object
before retrieving documents using that connection to use that read
preference.