Class ChangeStreamDocument<TDocument>
- java.lang.Object
-
- com.mongodb.client.model.changestream.ChangeStreamDocument<TDocument>
-
- Type Parameters:
TDocument- The type that this collection will encode thefullDocumentfield into.
public final class ChangeStreamDocument<TDocument> extends Object
Represents the$changeStreamaggregation output document.Note: this class will not be applicable for all change stream outputs. If using custom pipelines that radically change the change stream result, then an alternative document format should be used.
- Since:
- 3.6
-
-
Constructor Summary
Constructors Constructor Description ChangeStreamDocument(OperationType operationType, BsonDocument resumeToken, BsonDocument namespaceDocument, BsonDocument destinationNamespaceDocument, TDocument fullDocument, BsonDocument documentKey, BsonTimestamp clusterTime, UpdateDescription updateDescription, BsonInt64 txnNumber, BsonDocument lsid)Creates a new instance
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <TFullDocument>
Codec<ChangeStreamDocument<TFullDocument>>createCodec(Class<TFullDocument> fullDocumentClass, CodecRegistry codecRegistry)Creates the codec for the specific ChangeStreamOutput typebooleanequals(Object o)BsonTimestampgetClusterTime()Gets the cluster time at which the change occurred.StringgetDatabaseName()Returns the database nameMongoNamespacegetDestinationNamespace()Returns the destination namespace, derived from the "to" field in a change stream document.BsonDocumentgetDestinationNamespaceDocument()Returns the destination namespace document, derived from the "to" field in a change stream document.BsonDocumentgetDocumentKey()Returns a document containing just the _id of the changed document.TDocumentgetFullDocument()Returns the fullDocumentBsonDocumentgetLsid()Returns the identifier for the session associated with the transactionMongoNamespacegetNamespace()Returns the namespace, derived from the "ns" field in a change stream document.BsonDocumentgetNamespaceDocument()Returns the namespace cocument, derived from the "ns" field in a change stream document.OperationTypegetOperationType()Returns the operationTypeBsonDocumentgetResumeToken()Returns the resumeTokenBsonInt64getTxnNumber()Returns the transaction numberUpdateDescriptiongetUpdateDescription()Returns the updateDescriptioninthashCode()StringtoString()
-
-
-
Constructor Detail
-
ChangeStreamDocument
public ChangeStreamDocument(@BsonProperty("operationType") OperationType operationType, @BsonProperty("resumeToken") BsonDocument resumeToken, @Nullable @BsonProperty("ns") BsonDocument namespaceDocument, @Nullable @BsonProperty("to") BsonDocument destinationNamespaceDocument, @Nullable @BsonProperty("fullDocument") TDocument fullDocument, @Nullable @BsonProperty("documentKey") BsonDocument documentKey, @Nullable @BsonProperty("clusterTime") BsonTimestamp clusterTime, @Nullable @BsonProperty("updateDescription") UpdateDescription updateDescription, @Nullable @BsonProperty("txnNumber") BsonInt64 txnNumber, @Nullable @BsonProperty("lsid") BsonDocument lsid)
Creates a new instance- Parameters:
operationType- the operation typeresumeToken- the resume tokennamespaceDocument- the BsonDocument representing the namespacedestinationNamespaceDocument- the BsonDocument representing the destinatation namespacefullDocument- the full documentdocumentKey- a document containing the _id of the changed documentclusterTime- the cluster time at which the change occuredupdateDescription- the update descriptiontxnNumber- the transaction numberlsid- the identifier for the session associated with the transaction- Since:
- 3.11
-
-
Method Detail
-
getResumeToken
public BsonDocument getResumeToken()
Returns the resumeToken- Returns:
- the resumeToken
-
getNamespace
@BsonIgnore @Nullable public MongoNamespace getNamespace()
Returns the namespace, derived from the "ns" field in a change stream document. The invalidate operation type does include a MongoNamespace in the ChangeStreamDocument response. The dropDatabase operation type includes a MongoNamespace, but does not include a collection name as part of the namespace.- Returns:
- the namespace. If the namespaceDocument is null or if it is missing either the 'db' or 'coll' keys, then this will return null.
-
getNamespaceDocument
@BsonProperty("ns") @Nullable public BsonDocument getNamespaceDocument()
Returns the namespace cocument, derived from the "ns" field in a change stream document. The namespace document is a BsonDocument containing the values associated with a MongoNamespace. The 'db' key refers to the database name and the 'coll' key refers to the collection name.- Returns:
- the namespaceDocument
- Since:
- 3.8
-
getDestinationNamespace
@BsonIgnore @Nullable public MongoNamespace getDestinationNamespace()
Returns the destination namespace, derived from the "to" field in a change stream document.The destination namespace is used to indicate the destination of a collection rename event.
- Returns:
- the namespace. If the "to" document is null or absent, then this will return null.
- Since:
- 3.11
- See Also:
OperationType.RENAME
-
getDestinationNamespaceDocument
@BsonProperty("to") @Nullable public BsonDocument getDestinationNamespaceDocument()
Returns the destination namespace document, derived from the "to" field in a change stream document.The destination namespace document is a BsonDocument containing the values associated with a MongoNamespace. The 'db' key refers to the database name and the 'coll' key refers to the collection name.
- Returns:
- the destinationNamespaceDocument
- Since:
- 3.11
-
getDatabaseName
@BsonIgnore @Nullable public String getDatabaseName()
Returns the database name- Returns:
- the databaseName. If the namespaceDocument is null or if it is missing the 'db' key, then this will return null.
- Since:
- 3.8
-
getFullDocument
@Nullable public TDocument getFullDocument()
Returns the fullDocument- Returns:
- the fullDocument
-
getDocumentKey
@Nullable public BsonDocument getDocumentKey()
Returns a document containing just the _id of the changed document.For unsharded collections this contains a single field, _id, with the value of the _id of the document updated. For sharded collections, this will contain all the components of the shard key in order, followed by the _id if the _id isn’t part of the shard key.
- Returns:
- the document key, or null if the event is not associated with a single document (e.g. a collection rename event)
-
getClusterTime
@Nullable public BsonTimestamp getClusterTime()
Gets the cluster time at which the change occurred.- Returns:
- the cluster time at which the change occurred
- Since:
- 3.8
- Since server release
- 4.0
-
getOperationType
public OperationType getOperationType()
Returns the operationType- Returns:
- the operationType
-
getUpdateDescription
@Nullable public UpdateDescription getUpdateDescription()
Returns the updateDescription- Returns:
- the updateDescription, or null if the event is not associated with a single document (e.g. a collection rename event)
-
getTxnNumber
@Nullable public BsonInt64 getTxnNumber()
Returns the transaction number- Returns:
- the transaction number, or null if not part of a multi-document transaction
- Since:
- 3.11
- Since server release
- 4.0
-
getLsid
@Nullable public BsonDocument getLsid()
Returns the identifier for the session associated with the transaction- Returns:
- the lsid, or null if not part of a multi-document transaction
- Since:
- 3.11
- Since server release
- 4.0
-
createCodec
public static <TFullDocument> Codec<ChangeStreamDocument<TFullDocument>> createCodec(Class<TFullDocument> fullDocumentClass, CodecRegistry codecRegistry)
Creates the codec for the specific ChangeStreamOutput type- Type Parameters:
TFullDocument- the fullDocument type- Parameters:
fullDocumentClass- the class to use to represent the fullDocumentcodecRegistry- the codec registry- Returns:
- the codec
-
-