Package com.mongodb.client
Interface MongoChangeStreamCursor<TResult>
- Type Parameters:
TResult
- The type of documents the cursor contains
- All Superinterfaces:
AutoCloseable
,Closeable
,Iterator<TResult>
,MongoCursor<TResult>
The Mongo Cursor interface for change streams implementing the iterator protocol.
An application should ensure that a cursor is closed in all circumstances, e.g. using a try-with-resources statement:
try (MongoChangeStreamCursor<ChangeStreamDocument<Document>> cursor = collection.watch().cursor()) {
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
}
A MongoOperationTimeoutException
does not invalidate the MongoChangeStreamCursor
, but is immediately
propagated to the caller. Subsequent method call will attempt to resume operation by establishing a new change stream on the server,
without doing getMore
request first.
If a MongoOperationTimeoutException
occurs before any events are received, it indicates that the server
has timed out before it could finish processing the existing oplog. In such cases, it is recommended to close the current stream
and recreate it with a higher timeout setting.
- Since:
- 3.11
-
Method Summary
Methods inherited from interface com.mongodb.client.MongoCursor
available, close, forEachRemaining, getServerAddress, getServerCursor, hasNext, next, tryNext
-
Method Details
-
getResumeToken
Returns the resume token. If a batch has been iterated to the last change stream document in the batch and a postBatchResumeToken is included in the document, the postBatchResumeToken will be returned. Otherwise, the resume token contained in the last change stream document will be returned.- Returns:
- the resume token, which can be null if the cursor has either not been iterated yet, or the cursor is closed.
-