Const
Experimental
const cursor = collection.find({}, {timeoutMS: 100, timeoutMode: 'iteration'});
for await (const doc of cursor) {
// process doc
// This will throw a timeout error if any of the iterator's `next()` calls takes more than 100ms, but
// will continue to iterate successfully otherwise, regardless of the number of batches.
}
const cursor = collection.find({}, { timeoutMS: 1000, timeoutMode: 'cursorLifetime' });
const docs = await cursor.toArray(); // This entire line will throw a timeout error if all batches are not fetched and returned within 1000ms.
Specifies how
timeoutMS
is applied to the cursor. Can be either'cursorLifeTime'
or'iteration'
When set to'iteration'
, the deadline specified bytimeoutMS
applies to each call ofcursor.next()
. When set to'cursorLifetime'
, the deadline applies to the life of the entire cursor.Depending on the type of cursor being used, this option has different default values. For non-tailable cursors, this value defaults to
'cursorLifetime'
For tailable cursors, this value defaults to'iteration'
since tailable cursors, by definition can have an arbitrarily long lifetime.