public class ChangeStreamRequest<T> extends Object implements SubscriptionRequest<com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.Document>,T,ChangeStreamRequest.ChangeStreamRequestOptions>
SubscriptionRequest implementation to be used for listening to
Change Streams via a MessageListenerContainer
using the synchronous MongoDB Java driver.
The most trivial use case is subscribing to all events of a specific collection
ChangeStreamRequest request = new ChangeStreamRequest<>(System.out::println, () -> "collection-name");
or MongoDatabase which receives events from all collections in that database.
ChangeStreamRequest request = new ChangeStreamRequest<>(System.out::println, RequestOptions.justDatabase("test"));
For more advanced scenarios ChangeStreamOptions offers abstractions for options like filtering, resuming,...
ChangeStreamOptions options = ChangeStreamOptions.builder()
.filter(newAggregation(match(where("age").is(7))))
.returnFullDocumentOnUpdate()
.build();
ChangeStreamRequest request = new ChangeStreamRequest<>(System.out::println, new ChangeStreamRequestOptions("collection-name", options));
ChangeStreamRequest.ChangeStreamRequestBuilder offers a fluent API for creating ChangeStreamRequest with
ChangeStreamOptions in one go.
ChangeStreamRequest request = ChangeStreamRequest.builder()
.collection("collection-name")
.publishTo(System.out::println)
.filter(newAggregation(match(where("age").is(7))))
.fullDocumentLookup(UPDATE_LOOKUP)
.build();
Messges passed to the MessageListener contain the ChangeStreamDocument within their
raw value while the fullDocument is extracted into the messages body. Unless otherwise specified (via ChangeStreamOptions.getFullDocumentLookup() the
message body for update events will be empty for a Document target type.
Message.getBody() Message bodies} that map to a different target type automatically enforce an
FullDocument.UPDATE_LOOKUP.| Modifier and Type | Class and Description |
|---|---|
static class |
ChangeStreamRequest.ChangeStreamRequestBuilder<T>
Builder for creating
ChangeStreamRequest. |
static class |
ChangeStreamRequest.ChangeStreamRequestOptions
SubscriptionRequest.RequestOptions implementation specific to a ChangeStreamRequest. |
SubscriptionRequest.RequestOptions| Constructor and Description |
|---|
ChangeStreamRequest(MessageListener<com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.Document>,? super T> messageListener,
SubscriptionRequest.RequestOptions options)
|
| Modifier and Type | Method and Description |
|---|---|
static ChangeStreamRequest.ChangeStreamRequestBuilder |
builder()
Obtain a shiny new
ChangeStreamRequest.ChangeStreamRequestBuilder and start defining your ChangeStreamRequest in this
fancy fluent way. |
static <T> ChangeStreamRequest.ChangeStreamRequestBuilder<T> |
builder(MessageListener<com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.Document>,? super T> listener)
Obtain a shiny new
ChangeStreamRequest.ChangeStreamRequestBuilder and start defining your ChangeStreamRequest in this
fancy fluent way. |
MessageListener<com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.Document>,? super T> |
getMessageListener()
Obtain the
MessageListener to publish messages to. |
ChangeStreamRequest.ChangeStreamRequestOptions |
getRequestOptions()
Get the
SubscriptionRequest.RequestOptions specifying the requests behaviour. |
public ChangeStreamRequest(MessageListener<com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.Document>,? super T> messageListener, SubscriptionRequest.RequestOptions options)
messageListener - must not be null.options - must not be null.public MessageListener<com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.Document>,? super T> getMessageListener()
SubscriptionRequestMessageListener to publish messages to.getMessageListener in interface SubscriptionRequest<com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.Document>,T,ChangeStreamRequest.ChangeStreamRequestOptions>public ChangeStreamRequest.ChangeStreamRequestOptions getRequestOptions()
SubscriptionRequestSubscriptionRequest.RequestOptions specifying the requests behaviour.getRequestOptions in interface SubscriptionRequest<com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.Document>,T,ChangeStreamRequest.ChangeStreamRequestOptions>public static ChangeStreamRequest.ChangeStreamRequestBuilder builder()
ChangeStreamRequest.ChangeStreamRequestBuilder and start defining your ChangeStreamRequest in this
fancy fluent way. Just don't forget to call build() when your're done.ChangeStreamRequest.public static <T> ChangeStreamRequest.ChangeStreamRequestBuilder<T> builder(MessageListener<com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.Document>,? super T> listener)
ChangeStreamRequest.ChangeStreamRequestBuilder and start defining your ChangeStreamRequest in this
fancy fluent way. Just don't forget to call build() when your're done.ChangeStreamRequest.Copyright © 2011–2021 Pivotal Software, Inc.. All rights reserved.