@@ -78,6 +78,27 @@ class ParseQuery
78
78
*/
79
79
private $ limit = -1 ;
80
80
81
+ /**
82
+ * The read preference for the main query.
83
+ *
84
+ * @var string
85
+ */
86
+ private $ readPreference ;
87
+
88
+ /**
89
+ * The read preference for the queries to include pointers.
90
+ *
91
+ * @var string
92
+ */
93
+ private $ includeReadPreference ;
94
+
95
+ /**
96
+ * The read preference for the sub queries.
97
+ *
98
+ * @var string
99
+ */
100
+ private $ subqueryReadPreference ;
101
+
81
102
/**
82
103
* Create a Parse Query for a given Parse Class.
83
104
*
@@ -176,6 +197,18 @@ public function _setConditions($conditions)
176
197
$ this ->limit = $ entry ;
177
198
break ;
178
199
200
+ case 'readPreference ' :
201
+ $ this ->readPreference = $ entry ;
202
+ break ;
203
+
204
+ case 'includeReadPreference ' :
205
+ $ this ->includeReadPreference = $ entry ;
206
+ break ;
207
+
208
+ case 'subqueryReadPreference ' :
209
+ $ this ->subqueryReadPreference = $ entry ;
210
+ break ;
211
+
179
212
// skip
180
213
case 'skip ' :
181
214
$ this ->skip = $ entry ;
@@ -491,6 +524,15 @@ public function _getOptions()
491
524
if ($ this ->count ) {
492
525
$ opts ['count ' ] = $ this ->count ;
493
526
}
527
+ if ($ this ->readPreference ) {
528
+ $ opts ['readPreference ' ] = $ this ->readPreference ;
529
+ }
530
+ if ($ this ->includeReadPreference ) {
531
+ $ opts ['includeReadPreference ' ] = $ this ->includeReadPreference ;
532
+ }
533
+ if ($ this ->subqueryReadPreference ) {
534
+ $ opts ['subqueryReadPreference ' ] = $ this ->subqueryReadPreference ;
535
+ }
494
536
495
537
return $ opts ;
496
538
}
@@ -1375,4 +1417,22 @@ public function relatedTo($key, $value)
1375
1417
1376
1418
return $ this ;
1377
1419
}
1420
+
1421
+ /**
1422
+ * Changes the read preference that the backend will use when performing the query to the database.
1423
+ *
1424
+ * @param string $readPreference The read preference for the main query.
1425
+ * @param string $includeReadPreference The read preference for the queries to include pointers.
1426
+ * @param string $subqueryReadPreference The read preference for the sub queries.
1427
+ *
1428
+ * @return ParseQuery Returns the query, so you can chain this call.
1429
+ */
1430
+ public function readPreference ($ readPreference , $ includeReadPreference = null , $ subqueryReadPreference = null )
1431
+ {
1432
+ $ this ->readPreference = $ readPreference ;
1433
+ $ this ->includeReadPreference = $ includeReadPreference ;
1434
+ $ this ->subqueryReadPreference = $ subqueryReadPreference ;
1435
+
1436
+ return $ this ;
1437
+ }
1378
1438
}
0 commit comments