Moodle PHP Documentation 4.1
Moodle 4.1.11 (Build: 20240610) (c8c84b4af18)
MongoDB\Operation\Watch Class Reference
Inheritance diagram for MongoDB\Operation\Watch:
MongoDB\Operation\Executable

Public Member Functions

 __construct (Manager $manager, ?string $databaseName, ?string $collectionName, array $pipeline, array $options=[])
 Constructs an aggregate command for creating a change stream.
 
 commandFailed (CommandFailedEvent $event)
 
 commandStarted (CommandStartedEvent $event)
 
 commandSucceeded (CommandSucceededEvent $event)
 
 execute (Server $server)
 Execute the operation.
 

Public Attributes

const FULL_DOCUMENT_BEFORE_CHANGE_OFF = 'off'
 
const FULL_DOCUMENT_BEFORE_CHANGE_REQUIRED = 'required'
 
const FULL_DOCUMENT_BEFORE_CHANGE_WHEN_AVAILABLE = 'whenAvailable'
 
const FULL_DOCUMENT_DEFAULT = 'default'
 
const FULL_DOCUMENT_REQUIRED = 'required'
 
const FULL_DOCUMENT_UPDATE_LOOKUP = 'updateLookup'
 
const FULL_DOCUMENT_WHEN_AVAILABLE = 'whenAvailable'
 

Constructor & Destructor Documentation

◆ __construct()

MongoDB\Operation\Watch::__construct ( Manager $manager,
?string $databaseName,
?string $collectionName,
array $pipeline,
array $options = [] )

Constructs an aggregate command for creating a change stream.

Supported options:

  • batchSize (integer): The number of documents to return per batch.
  • collation (document): Specifies a collation.
  • comment (mixed): BSON value to attach as a comment to this command.

    Only string values are supported for server versions < 4.4.

  • fullDocument (string): Determines how the "fullDocument" response field will be populated for update operations.

    By default, change streams only return the delta of fields (via an "updateDescription" field) for update operations and "fullDocument" is omitted. Insert and replace operations always include the "fullDocument" field. Delete operations omit the field as the document no longer exists.

    Specify "updateLookup" to return the current majority-committed version of the updated document.

    MongoDB 6.0+ allows returning the post-image of the modified document if the collection has changeStreamPreAndPostImages enabled. Specify "whenAvailable" to return the post-image if available or a null value if not. Specify "required" to return the post-image if available or raise an error if not.

  • fullDocumentBeforeChange (string): Determines how the "fullDocumentBeforeChange" response field will be populated. By default, the field is omitted.

    MongoDB 6.0+ allows returning the pre-image of the modified document if the collection has changeStreamPreAndPostImages enabled. Specify "whenAvailable" to return the pre-image if available or a null value if not. Specify "required" to return the pre-image if available or raise an error if not.

  • maxAwaitTimeMS (integer): The maximum amount of time for the server to wait on new documents to satisfy a change stream query.
  • readConcern (MongoDB\Driver\ReadConcern): Read concern.
  • readPreference (MongoDB\Driver\ReadPreference): Read preference. This will be used to select a new server when resuming. Defaults to a "primary" read preference.
  • resumeAfter (document): Specifies the logical starting point for the new change stream.

    Using this option in conjunction with "startAfter" and/or "startAtOperationTime" will result in a server error. The options are mutually exclusive.

  • session (MongoDB\Driver\Session): Client session.
  • showExpandedEvents (boolean): Enables the server to send the expanded list of change stream events.

    This option is not supported for server versions < 6.0.

  • startAfter (document): Specifies the logical starting point for the new change stream. Unlike "resumeAfter", this option can be used with a resume token from an "invalidate" event.

    Using this option in conjunction with "resumeAfter" and/or "startAtOperationTime" will result in a server error. The options are mutually exclusive.

  • startAtOperationTime (MongoDB\BSON\TimestampInterface): If specified, the change stream will only provide 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. Alternatively, an operation time may be obtained from MongoDB\Driver\Server\getInfo().

    Using this option in conjunction with "resumeAfter" and/or "startAfter" will result in a server error. The options are mutually exclusive.

    This option is not supported for server versions < 4.0.

  • typeMap (array): Type map for BSON deserialization. This will be applied to the returned Cursor (it is not sent to the server).

Note: A database-level change stream may be created by specifying null for the collection name. A cluster-level change stream may be created by specifying null for both the database and collection name.

Parameters
Manager$managerManager instance from the driver
string | null$databaseNameDatabase name
string | null$collectionNameCollection name
array$pipelineList of pipeline operations
array$optionsCommand options
Exceptions
InvalidArgumentExceptionfor parameter/option parsing errors

Member Function Documentation

◆ execute()

MongoDB\Operation\Watch::execute ( Server $server)

Execute the operation.

See also
Executable\execute()
Return values
ChangeStream
Exceptions
UnsupportedExceptionif collation or read concern is used and unsupported
RuntimeExceptionfor other driver errors (e.g. connection errors)

Implements MongoDB\Operation\Executable.


The documentation for this class was generated from the following file: