class Mongo::Operation::Write::Command::CreateIndex
A MongoDB ensure index write command operation.
@example Create an ensure index command operation.
Write::Command::CreateIndex.new({ :indexes => [{ :key => { :foo => 1 }, :name => 'foo_1', :unique => true }], :db_name => 'test', :coll_name => 'test_coll' })
@since 2.0.0
Public Instance Methods
execute(server)
click to toggle source
Execute the operation.
@example Execute the operation.
operation.execute(server)
@param [ Mongo::Server ] server The server to send this operation to.
@return [ Result ] The operation response, if there is one.
@since 2.5.0
# File lib/mongo/operation/write/command/create_index.rb, line 46 def execute(server) result = Result.new(server.with_connection do |connection| connection.dispatch([ message(server) ], operation_id) end) server.update_cluster_time(result) session.process(result) if session result.validate! end
Private Instance Methods
message(server)
click to toggle source
# File lib/mongo/operation/write/command/create_index.rb, line 66 def message(server) sel = update_selector_for_write_concern(selector, server) if server.features.op_msg_enabled? command_op_msg(server, sel, options) else Protocol::Query.new(db_name, Database::COMMAND, sel, options) end end
selector()
click to toggle source
The query selector for this ensure index command operation.
@return [ Hash ] The selector describing this insert operation.
@since 2.0.0
# File lib/mongo/operation/write/command/create_index.rb, line 62 def selector { :createIndexes => coll_name, :indexes => indexes } end