Skip to content

Commit 6a7dac1

Browse files
committed
fix(utils): restructure inheritance rules for read preferences
1 parent a649e35 commit 6a7dac1

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

lib/utils.js

+9-8
Original file line numberDiff line numberDiff line change
@@ -517,15 +517,16 @@ function resolveReadPreference(options, sources) {
517517
if (options.readPreference) {
518518
readPreference = options.readPreference;
519519
} else if (session && session.inTransaction() && session.transaction.options.readPreference) {
520-
// From transactions spec: If the user supplies an explicit readConcern via a method
521-
// option, however, drivers MUST apply the readConcern...
520+
// The transaction’s read preference MUST override all other user configurable read preferences.
522521
readPreference = session.transaction.options.readPreference;
523-
} else if (coll && coll.s.readPreference) {
524-
readPreference = coll.s.readPreference;
525-
} else if (db && db.s.readPreference) {
526-
readPreference = db.s.readPreference;
527-
} else if (defaultReadPreference) {
528-
readPreference = defaultReadPreference;
522+
} else {
523+
if (defaultReadPreference) {
524+
readPreference = defaultReadPreference;
525+
} else if (coll && coll.s.readPreference) {
526+
readPreference = coll.s.readPreference;
527+
} else if (db && db.s.readPreference) {
528+
readPreference = db.s.readPreference;
529+
}
529530
}
530531

531532
// do we even have a read preference?

0 commit comments

Comments
 (0)