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
- Version 13.0
- Added functions to watch changes in MongoDB: MongoDB.ChangeStreamErrorDocument, MongoDB.ChangeStreamResumeToken, MongoDB.CloseChangeStream, MongoDB.NextChange, MongoDB.WatchClient, MongoDB.WatchCollection and MongoDB.WatchDatabase.
Example Databases
Blog Entries
This function checks for a license.
Created 18th November 2022, last changed 30th January 2023