Use this function for commands that both read and write, such as "mapReduce" with an output collection.

Read and write concern and collation can be overridden by various sources. The highest-priority sources for these options are listed first in the following table. Read preferences are *not* applied. The write concern is omitted for MongoDB before 3.4.

============== ============== =========
Read Concern   Write Concern  Collation
============== ============== =========
``opts``       ``opts``       ``opts``
Transaction    Transaction
|opts-source|  |opts-source|
============== ============== =========

: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>`.
