Sets a server-side timeout for this query

MongoCursor::limit
MongoCursor::next
MongoCursor
PHP Manual

# MongoCursor::maxTimeMS

(PECL mongo >=1.5.0)

MongoCursor::maxTimeMS — Sets a server-side timeout for this query

### Description

public MongoCursor MongoCursor::maxTimeMS ( int `$ms` )

Specifies a cumulative time limit in milliseconds to be allowed by the server for processing operations on the cursor.

### Parameters

`ms`

  Specifies a cumulative time limit in milliseconds to be allowed by the server for processing operations on the cursor.

### Return Values

This cursor.

### Errors/Exceptions

Throws MongoCursorException if this cursor has started iterating.

Causes methods that fetch results to throw a MongoExecutionTimeoutException if the query takes longer than the specified number of milliseconds in processing time.

### Examples

Example #1 MongoCursor::maxTimeMS() example

In the following example, the server will abort the query if the cursor requires more than two seconds in processing time to return its results.

`<?php
$cursor = $collection->find();
$cursor->maxTimeMS(2000);
try {
$results = iterator_to_array($cursor);
} catch (MongoExecutionTimeoutException $e) {
echo "query took too long!";
}
?>`

### Notes

Warning

Unlike MongoCursor::timeout(), which specifies a client-side timeout, MongoCursor::maxTimeMS() can be used to cause the MongoDB server to abort long-running queries. This timeout is cumulative for the lifetime of the cursor (i.e. each batch will contribute to this time limit). The timeout only considers processing time; idle time is not considered.

MongoCursor::limit
MongoCursor::next
MongoCursor
PHP Manual