- db: A mongoc_client_t <> specifying the client which the
change stream listens to.
- pipeline: A bson_t
<https://www.mongoc.org/libbson/current/bson_t.html> representing an
aggregation pipeline appended to the change stream. This may be an empty
document.
- opts: A bson_t
<https://www.mongoc.org/libbson/current/bson_t.html> containing
change stream options.
Changed in version 2.0.0: batchSize of 0 is applied to the
aggregate command. 0 was previously ignored.
opts may be NULL or a BSON document with additional command
options:
- batchSize: An int32 requesting a limit of documents returned
in each server reply. If positive, the batchSize is applied to both
aggregate and getMore commands. If 0, the batchSize
is only applied to the aggregate command (Useful to request an
immediate cursor without significant server-side work. See Aggregate Data
Specifying Batch Size
<https://www.mongodb.com/docs/manual/reference/command/aggregate/#aggregate-data-specifying-batch-size>).
If omitted or negative, the value is ignored and server defaults are used
(See Cursor Batches
<https://www.mongodb.com/docs/manual/core/cursors/#cursor-batches>
for a description of server defaults).
- resumeAfter: A Document representing the logical starting
point of the change stream. The result of
mongoc_change_stream_get_resume_token() <> or the _id field
of any change received from a change stream can be used here. This option
is mutually exclusive with startAfter and
startAtOperationTime.
- startAfter: A Document representing the logical starting
point of the change stream. Unlike resumeAfter, this can resume
notifications after an "invalidate" event. The result of
mongoc_change_stream_get_resume_token() <> or the _id field
of any change received from a change stream can be used here. This option
is mutually exclusive with resumeAfter and
startAtOperationTime.
- startAtOperationTime: A Timestamp. The change stream only
provides changes that occurred at or after the specified timestamp. Any
command run against the server will return an operation time that can be
used here. This option is mutually exclusive with resumeAfter and
startAfter.
- maxAwaitTimeMS: An int64 representing the maximum amount of
time a call to mongoc_change_stream_next() <> will block waiting for
data
- fullDocument: An optional UTF-8 string. Set this option to
"default", "updateLookup", "whenAvailable",
or "required", If unset, The string "default" is
assumed. Set this option to "updateLookup" to direct the change
stream cursor to lookup the most current majority-committed version of the
document associated to an update change stream event.
- fullDocumentBeforeChange: An optional UTF-8 string. Set this option
to "whenAvailable", "required", or "off".
When unset, the default value is "off". Similar to
"fullDocument", but returns the value of the document before the
associated change.
- showExpandedEvents: Set to true to return an expanded list
of change stream events. Available only on MongoDB versions >=6.0
- comment: A bson_value_t
<https://www.mongoc.org/libbson/current/bson_value_t.html>
specifying the comment to attach to this command. The comment will appear
in log messages, profiler output, and currentOp output. Only string values
are supported prior to MongoDB 4.4.
A newly allocated mongoc_change_stream_t <> which must be
freed with mongoc_change_stream_destroy() <> when no longer in use.
The returned mongoc_change_stream_t <> is never NULL. If there
is an error, it can be retrieved with mongoc_change_stream_error_document()
<>, and subsequent calls to mongoc_change_stream_next() <> will
return false.
See also:
mongoc_database_watch() <>
mongoc_collection_watch() <>
2009-present, MongoDB, Inc.