1MONGOC_CLIENT_WATCH(3) libmongoc MONGOC_CLIENT_WATCH(3)
2
3
4
6 mongoc_client_watch - mongoc_client_watch()
7
9 mongoc_change_stream_t*
10 mongoc_client_watch (mongoc_client_t *client,
11 const bson_t *pipeline,
12 const bson_t *opts) BSON_GNUC_WARN_UNUSED_RESULT;
13
14 A helper function to create a change stream. It is preferred to call
15 this function over using a raw aggregation to create a change stream.
16
17 This function uses the read preference and read concern of the client.
18 If the change stream needs to re-establish connection, the same read
19 preference will be used. This may happen if the change stream encoun‐
20 ters a resumable error.
21
22 WARNING:
23 A change stream is only supported with majority read concern.
24
25 This function is considered a retryable read operation. Upon a tran‐
26 sient error (a network error, errors due to replica set failover, etc.)
27 the operation is safely retried once. If retryreads is false in the
28 URI (see mongoc_uri_t) the retry behavior does not apply.
29
31 • db: A mongoc_client_t specifying the client which the change stream
32 listens to.
33
34 • pipeline: A bson_t representing an aggregation pipeline appended to
35 the change stream. This may be an empty document.
36
37 • opts: A bson_t containing change stream options.
38
39 opts may be NULL or a BSON document with additional command options:
40
41 • batchSize: An int32 representing number of documents requested to be
42 returned on each call to mongoc_change_stream_next
43
44 • resumeAfter: A Document representing the logical starting point of
45 the change stream. The result of mongoc_change_stream_get_resume_to‐
46 ken() or the _id field of any change received from a change stream
47 can be used here. This option is mutually exclusive with startAfter
48 and startAtOperationTime.
49
50 • startAfter: A Document representing the logical starting point of the
51 change stream. Unlike resumeAfter, this can resume notifications af‐
52 ter an "invalidate" event. The result of mongoc_change_stream_get_re‐
53 sume_token() or the _id field of any change received from a change
54 stream can be used here. This option is mutually exclusive with re‐
55 sumeAfter and startAtOperationTime.
56
57 • startAtOperationTime: A Timestamp. The change stream only provides
58 changes that occurred at or after the specified timestamp. Any com‐
59 mand run against the server will return an operation time that can be
60 used here. This option is mutually exclusive with resumeAfter and
61 startAfter.
62
63 • maxAwaitTimeMS: An int64 representing the maximum amount of time a
64 call to mongoc_change_stream_next will block waiting for data
65
66 • fullDocument: A UTF-8 string. Set this option to "updateLookup" to
67 direct the change stream cursor to lookup the most current major‐
68 ity-committed version of the document associated to an update change
69 stream event.
70
72 A newly allocated mongoc_change_stream_t which must be freed with mon‐
73 goc_change_stream_destroy when no longer in use. The returned mon‐
74 goc_change_stream_t is never NULL. If there is an error, it can be re‐
75 trieved with mongoc_change_stream_error_document, and subsequent calls
76 to mongoc_change_stream_next will return false.
77
78 SEE ALSO:
79 mongoc_database_watch
80
81 mongoc_collection_watch
82
83
85 MongoDB, Inc
86
88 2017-present, MongoDB, Inc
89
90
91
92
931.20.0 Nov 18, 2021 MONGOC_CLIENT_WATCH(3)