Database Manual / Reference / mongosh Methods / Cursors

cursor.isExhausted() (mongosh method)

cursor.isExhausted()

Important

mongosh Method

This page documents a mongosh method. This is not the documentation for a language-specific driver, such as Node.js.

For MongoDB API drivers, refer to the language-specific MongoDB driver documentation.

Returns:Boolean

cursor.isExhausted() returns false if documents remain in the current document batch read by the cursor. Otherwise, returns true.

Compatibility

This method is available in deployments hosted in the following environments:

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud

Note

This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.

Behavior

Tailable Cursors

You can use isExhausted() with a tailable cursor. A tailable cursor stays open even if no documents remain in the current batch. Other cursors are automatically closed when no documents remain.

Change Streams

You cannot use isExhausted() with change streams. Instead, to examine if:

For change stream examples, see Watch Example and Change Stream Images Example.

Examples

This section contains examples that use a cursor to read documents from a collection with temperature readings from a weather sensor. You'll see examples of isExhausted().

1

Create the collection

Run:

db.sensor.insertMany( [
{ _id: 0, temperature: 12 },
{ _id: 1, temperature: 23 }
] )
2

Create a cursor variable

Create a cursor variable named sensorCursor that reads the documents from the sensor collection:

var sensorCursor = db.sensor.find()
3

Count the number of documents in the cursor

Run:

sensorCursor.count()

The output is 2 because there are two documents in the collection.

4

Return the first document from the cursor

Run:

sensorCursor.next()

Output:

{ _id: 0, temperature: 12 }
5

Examine the isExhausted() value

Run:

sensorCursor.isExhausted()

The output is false because there is a remaining document in sensorCursor.

6

Return the next document from the cursor

Run:

sensorCursor.next()

Output:

{ _id: 1, temperature: 23 }
7

Attempt to return the next document from the cursor

Run:

sensorCursor.next()

There are no more documents and the example returns null.

8

Examine the isExhausted() value

Run:

sensorCursor.isExhausted()

There are no more documents and isExhausted() returns true.