Supported options:
* allowPartialResults (boolean): Get partial results from a mongos if
some shards are inaccessible (instead of throwing an error).
* batchSize (integer): The number of documents to return per batch.
* comment (string): Attaches a comment to the query. If "$comment" also
exists in the modifiers document, this option will take precedence.
* cursorType (enum): Indicates the type of cursor to use. Must be either
NON_TAILABLE, TAILABLE, or TAILABLE_AWAIT. The default is
NON_TAILABLE.
* limit (integer): The maximum number of documents to return.
* maxTimeMS (integer): The maximum amount of time to allow the query to
run. If "$maxTimeMS" also exists in the modifiers document, this
option will take precedence.
* modifiers (document): Meta-operators modifying the output or behavior
of a query.
* noCursorTimeout (boolean): The server normally times out idle cursors
after an inactivity period (10 minutes) to prevent excess memory use.
Set this option to prevent that.
* oplogReplay (boolean): Internal replication use only. The driver
should not set this.
* projection (document): Limits the fields to return for the matching
document.
* readConcern (MongoDB\Driver\ReadConcern): Read concern.
For servers < 3.2, this option is ignored as read concern is not
available.
* readPreference (MongoDB\Driver\ReadPreference): Read preference.
* skip (integer): The number of documents to skip before returning.
* sort (document): The order in which to return matching documents. If
"$orderby" also exists in the modifiers document, this option will
take precedence.
* typeMap (array): Type map for BSON deserialization. This will be
applied to the returned Cursor (it is not sent to the server).