Components All New MacOS Windows Linux iOS
Examples Mac & Win Server Client Guides Statistic FMM Blog Deprecated Old

MongoDB.WatchDatabase

Creates a change stream for a database.

Component Version macOS Windows Linux Server iOS SDK
MongoDB 13.0 ✅ Yes ✅ Yes ✅ Yes ✅ Yes ✅ Yes
MBS( "MongoDB.WatchDatabase"; MongoDBRef; pipelineJSON { ; OptionsJSON } )   More

Parameters

Parameter Description Example Flags
MongoDBRef The reference number for the mongo connection. $MongoDB
pipelineJSON A JSON representing an aggregation pipeline appended to the change stream. This may be an empty document. "{}"
OptionsJSON A JSON containing change stream options. options may be "" or a JSON document with additional command options. "" Optional

Result

Returns OK or error.

Description

Creates a change stream for a database.
It is preferred to call this function over using a raw aggregation to create a change stream.
You can watch what other connections (on other computers) change in the database and use this change stream to log changes. This allows to have a FileMaker app watch the database and trigger scripts when something interesting happens, e.g. a new record is created to react or audit.

This function uses the read preference and read concern of the database. 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.

Warning A change stream is only supported with majority read concern.
This function is considered a retryable read operation. Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. If retryreads is false in the URI the retry behavior does not apply.

Call this method on the database which the change stream listens to.

pipelineJSON: A JSON representing an aggregation pipeline appended to the change stream. This may be an empty document.

OptionsJSON: A JSON containing change stream options. options may be "" or a JSON document with additional command options:

batchSize: An integer representing number of documents requested to be returned on each call to NextChange()

resumeAfter: A Document representing the logical starting point of the change stream. The result of StreamResumeToken() 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 StreamResumeToken() 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 StreamResumeToken() 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.

comment: A JSON 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.

Examples

Watch the database for changes:

# connect first

# now open the database
Set Variable [ $r ; Value: MBS( "MongoDB.OpenDatabase"; $mongo; "test" ) ]
# and monitor it for changes
Set Variable [ $r ; Value: MBS( "MongoDB.WatchDatabase"; $mongo; "{}" ) ]

See also

Release notes

Example Databases

Blog Entries

This function checks for a license.

Created 18th November 2022, last changed 30th January 2023


MongoDB.WatchCollection - MountNotification.Install