mongoc_collection_watch (const mongoc_collection_t *coll,
                         const bson_t *pipeline,
                         const bson_t *opts);

A helper function to create a change stream. It is preferred to call this function over using a raw aggregation to create a change stream.

This function uses the read preference and read concern of the collection. If the change stream needs to re-establish connection, the same read preference will be used. This may happen if the change stream encounters a resumable error.


A change stream is only supported with majority read concern.


  • coll: A mongoc_collection_t specifying the collection which the change stream listens to.
  • pipeline: A bson_t representing an aggregation pipeline appended to the change stream. This may be an empty document.
  • opts: A bson_t containing change stream options or NULL.

opts may be NULL or a document consisting of any subset of the following parameters:


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.