cursor.isExhausted()
On this page
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()
returnstrue
if the cursor is closed and there are no remaining objects in the batch.Use
isExhausted()
to support iterating cursors that remain open even if there are no documents remaining in the current batch, such astailable
orchange stream
cursors.
Example
Consider the following while
loop iterating through updates to
a change stream
cursor:
watchCursor = db.collection.watch(); while (watchCursor.hasNext()) { watchCursor.next(); }
A change stream cursor can return an empty batch if no new data changes
have occured within a set period of time. This causes the while loop
to exit prematurely as cursor.hasNext()
returns false
when it detects the empty batch. However, the change stream cursor
is still open and able to return more documents in the future.
Use cursor.isExhausted()
to ensure the while loop only exits
when the cursor is closed and there are no documents remaining in the
batch:
watchCursor = db.collection.watch(); while (!watchCursor.isExhausted()) { if (watchCursor.hasNext()){ watchCursor.next(); } }