MongoCursor::timeout

Sets a client-side timeout for this query

&reftitle.description; public `MongoCursor` `MongoCursor::timeout` `int` `ms`

A timeout can be set at any time and will affect subsequent queries on the cursor, including fetching more results from the database.

&reftitle.parameters;

`ms`

- The number of milliseconds for the cursor to wait for a response. Use `-1` to wait forever. By default, the cursor will wait `MongoCursor::$timeout` milliseconds.

&reftitle.returnvalues;

This cursor.

&reftitle.errors;

Causes methods that fetch results to throw a `MongoCursorTimeoutException` if the query takes longer than the specified number of milliseconds.

&reftitle.examples;

### `MongoCursor::timeout` example

In the following example, the driver will wait forever for the initial database response, and then wait 100ms for subsequent responses.

    <?php

    $cursor = $collection->find();
    $cursor->timeout(-1);

    /* $cursor->hasNext() executes the query. An infinite timeout has been set, so
     * the driver will wait as long as necessary for a response.
     */
    while ($cursor->hasNext()) {
        $cursor->timeout(100);

        /* A timeout has now been set, so if the cursor needs to get more results
         * from the database, it will only wait 100ms for a response.
         */
        try {
            print_r($cursor->getNext());
        } catch (MongoCursorTimeoutException $e) {
            echo "query took too long!";
        }
    }

    ?>

&reftitle.notes;

This does not cause the MongoDB server to cancel long-running operations; it only instructs the driver to stop waiting for a response and throw a `MongoCursorTimeoutException` after a set time.