Class: Mongo::Operation::CreateIndex::OpMsg Private
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
|
|
Instance Chain:
|
|
Inherits: |
Mongo::Operation::OpMsgBase
|
Defined in: | lib/mongo/operation/create_index/op_msg.rb |
Overview
A MongoDB createindex operation sent as an op message.
Constant Summary
::Mongo::Operation::Specifiable
- Included
BYPASS_DOC_VALIDATION, COLLATION, COLL_NAME, CURSOR_COUNT, CURSOR_ID, DB_NAME, DELETE, DELETES, DOCUMENTS, INDEX, INDEXES, INDEX_NAME, MAX_TIME_MS, OPERATION_ID, OPTIONS, READ, READ_CONCERN, SELECTOR, TO_RETURN, UPDATE, UPDATES, USER, USER_NAME, WRITE_CONCERN
::Mongo::Operation::Executable
- Included
::Mongo::Operation::SessionsSupported
- Included
Instance Attribute Summary
::Mongo::Operation::Executable
- Included
::Mongo::Operation::Specifiable
- Included
#acknowledged_write? | Does the operation have an acknowledged write concern. |
#ordered? | Whether the operation is ordered. |
#spec |
Instance Method Summary
- #selector(connection) private Internal use only
::Mongo::Operation::OpMsgBase
- Inherited
::Mongo::Operation::Timed
- Included
#apply_relevant_timeouts_to | If a timeout is active (as defined by the current context), and it has not yet expired, add |
#with_max_time | A helper method that computes the remaining timeout (in seconds) and yields it to the associated block. |
::Mongo::Operation::SessionsSupported
- Included
#add_read_preference | Adds $readPreference field to the command document. |
#add_write_concern!, #apply_autocommit!, | |
#apply_causal_consistency! | Adds causal consistency document to the selector, if one can be constructed and the selector is for a startTransaction command. |
#apply_causal_consistency_if_possible | Adds causal consistency document to the selector, if one can be constructed. |
#apply_cluster_time!, #apply_read_pref!, #apply_session_options, #apply_start_transaction!, #apply_txn_num!, #apply_txn_opts!, #build_message, #command, #flags, #read_command?, #suppress_read_write_concern!, #validate_read_preference! |
::Mongo::Operation::Executable
- Included
#do_execute, #execute, #build_message, #check_for_network_error, | |
#dispatch_message | Returns a |
#get_result, #process_result, #process_result_for_sdam, #result_class |
::Mongo::Operation::ResponseHandling
- Included
#add_error_labels | Adds error labels to exceptions raised in the yielded to block, which should perform MongoDB operations and raise Mongo::Errors on failure. |
#add_server_diagnostics | Yields to the block and, if the block raises an exception, adds a note to the exception with the address of the specified server. |
#maybe_add_retryable_write_error_label! | A method that will add the RetryableWriteError label to an error if any of the following conditions are true: |
#unpin_maybe | Unpins the session and/or the connection if the yielded to block raises errors that are required to unpin the session and the connection. |
#validate_result |
::Mongo::Operation::Specifiable
- Included
#== | Check equality of two specifiable operations. |
#apply_collation, | |
#array_filters | The array filters. |
#bypass_document_validation | Whether or not to bypass document level validation. |
#coll_name | The name of the collection to which the operation should be sent. |
#collation | The collation to apply to the operation. |
#command | The command. |
#cursor_count | Get the cursor count from the spec. |
#cursor_id | The id of the cursor created on the server. |
#db_name | The name of the database to which the operation should be sent. |
#delete | Get the delete document from the specification. |
#deletes | Get the deletes from the specification. |
#documents | The documents to in the specification. |
#eql? | Alias for Specifiable#==. |
#index | Get the index from the specification. |
#index_id | Get the index id from the spec. |
#index_name | Get the index name from the spec. |
#indexes | Get the indexes from the specification. |
#initialize |
|
#max_time_ms | Get the max time ms value from the spec. |
#namespace | The namespace, consisting of the db name and collection name. |
#operation_id | Get the operation id for the operation. |
#options | Get the options for executing the operation on a particular connection. |
#read | The read preference for this operation. |
#read_concern | Get the read concern document from the spec. |
#selector | The selector from the specification for execution on a particular connection. |
#session | The session to use for the operation. |
#to_return | The number of documents to request from the server. |
#txn_num | The transaction number for the operation. |
#update | The update document from the spec. |
#updates | The update documents from the spec. |
#user | The user for user related operations. |
#user_name | The user name from the specification. |
#write_concern | The write concern to use for this operation. |
Instance Method Details
#selector(connection) (private)
# File 'lib/mongo/operation/create_index/op_msg.rb', line 32
def selector(connection) { createIndexes: coll_name, indexes: indexes, comment: spec[:comment], }.compact.tap do |selector| if commit_quorum = spec[:commit_quorum] # While server versions 3.4 and newer generally perform option # validation, there was a bug on server versions 4.2.0 - 4.2.5 where # the server would accept the commitQuorum option and use it internally # (see SERVER-47193). As a result, the drivers specifications require # drivers to perform validation and raise an error when the commitQuorum # option is passed to servers that don't support it. unless connection.features.commit_quorum_enabled? raise Error::UnsupportedOption.commit_quorum_error end selector[:commitQuorum] = commit_quorum end end end