class Mongo::Operation::Write::Command::DropIndex

A MongoDB drop index write command operation.

@example Create the drop index operation.

Write::Command::DropIndex.new({
  :index      => { :foo => 1 },
  :db_name    => 'test',
  :coll_name  => 'test_coll',
  :index_name => 'foo_1'
})

@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/drop_index.rb, line 47
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/drop_index.rb, line 67
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 drop index command operation.

@return [ Hash ] The selector describing this insert operation.

@since 2.0.0

# File lib/mongo/operation/write/command/drop_index.rb, line 63
def selector
  { :dropIndexes => coll_name, :index => index_name }
end