Read preferences, read and write concern, and collation can be overridden by various sources. The highest-priority sources for these options are listed first:

================== ============== ============== =========
Read Preferences   Read Concern   Write Concern  Collation
================== ============== ============== =========
``read_prefs``     ``opts``       ``opts``       ``opts``
Transaction        Transaction    Transaction
================== ============== ============== =========

In a transaction, read concern and write concern are prohibited in ``opts`` and the read preference must be primary or NULL.
:ref:`See the example for transactions <mongoc_client_session_start_transaction_example>` and for :ref:`the "distinct" command with opts <mongoc_client_read_command_with_opts_example>`.
