class Mongo::Operation::Write::Command::Delete

A MongoDB delete write command operation.

@example Initialize a delete write command.

Write::Command::Delete.new({
  :deletes => [{ :q => { :foo => 1 }, :limit => 1 }],
  :db_name => 'test',
  :coll_name => 'test_coll',
  :write_concern => write_concern,
  :ordered => true
})

@since 2.0.0

Constants

IDENTIFIER

Private Instance Methods

message(server) click to toggle source

The wire protocol message for this write operation.

@return [ Mongo::Protocol::Query ] Wire protocol message.

@since 2.0.0

# File lib/mongo/operation/write/command/delete.rb, line 67
def message(server)
  if server.features.op_msg_enabled?
    op_msg(server)
  else
    Protocol::Query.new(db_name, Database::COMMAND, selector, options)
  end
end
op_msg(server) click to toggle source
# File lib/mongo/operation/write/command/delete.rb, line 51
def op_msg(server)
  global_args = { delete: coll_name,
                  Protocol::Msg::DATABASE_IDENTIFIER => db_name
                }.merge!(command_options)
  update_selector_for_session!(global_args, server)

  section = { type: 1, payload: { identifier: IDENTIFIER, sequence: deletes } }
  flags = unacknowledged_write? ? [:more_to_come] : [:none]
  Protocol::Msg.new(flags, {}, global_args, section)
end
selector() click to toggle source

The query selector for this delete command operation.

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

@since 2.0.0

# File lib/mongo/operation/write/command/delete.rb, line 45
def selector
  { delete: coll_name,
    deletes: deletes
  }.merge(command_options)
end