MongoDB\Driver\Manager::startSession

Start a new client session for use with this client

&reftitle.description; final public `MongoDB\Driver\Session` `MongoDB\Driver\Manager::startSession` ``array``null```options`&null;

Creates a `MongoDB\Driver\Session` for the given options. The session may then be specified when executing commands, queries, and write operations.

A `MongoDB\Driver\Session` can only be used with the `MongoDB\Driver\Manager` from which it was created.

&reftitle.parameters;

`options`

- ## options

  Option | Type | Description | Default
  causalConsistency | `bool` | Configure causal consistency in a session. If &true;, each operation in the session will be causally ordered after the previous read or write operation. Set to &false; to disable causal consistency. See Casual Consistency in the MongoDB manual for more information. | &true;
  defaultTransactionOptions | `array` | Default options to apply to newly created transactions. These options are used unless they are overridden when a transaction is started with different value for each option.

  ## options

  Option | Type | Description
  &mongodb.option.maxCommitTimeMS; &mongodb.option.readConcern; &mongodb.option.readPreference; &mongodb.option.writeConcern;

  This option is available in MongoDB 4.0+. | `[]`
  snapshot | `bool` | Configure snapshot reads in a session. If &true;, a timestamp will be obtained from the first supported read operation in the session (i.e. `find`, `aggregate`, or unsharded `distinct`). Subsequent read operations within the session will then utilize a `"snapshot"` read concern level to read majority-committed data from that timestamp. Set to &false; to disable snapshot reads. Snapshot reads require MongoDB 5.0+ and cannot be used with causal consistency, transactions, or write operations. If `"snapshot"` is &true;, `"causalConsistency"` will default to &false;. See Read Concern "snapshot" in the MongoDB manual for more information. | &false;

&reftitle.returnvalues;

Returns a `MongoDB\Driver\Session`.

&reftitle.errors;

&mongodb.throws.argumentparsing;
- Throws `MongoDB\Driver\Exception\InvalidArgumentException` if the `"causalConsistency"` and `"snapshot"` options are both &true;.
- Throws `MongoDB\Driver\Exception\RuntimeException` if the session could not be created (e.g. libmongoc does not support crypto).

&reftitle.changelog;

&Version; | &Description;
PECL mongodb 1.11.0 | The `"snapshot"` option was added.
PECL mongodb 1.6.0 | The `"maxCommitTimeMS"` option was added to `"defaultTransactionOptions"`.
PECL mongodb 1.5.0 | The `"defaultTransactionOptions"` option was added.

&reftitle.seealso;

- `MongoDB\Driver\Session`
- Casual Consistency in the MongoDB manual