class Mongo::Operation::Write::Delete

A MongoDB delete operation.

@note If a server with version >= 2.5.5 is selected, a write command

operation will be created and sent instead.

@example Create the delete operation.

Write::Delete.new({
  :delete => { :q => { :foo => 1 }, :limit => 1 },
  :db_name => 'test',
  :coll_name => 'test_coll',
  :write_concern => write_concern
})

Initialization:

param [ Hash ] spec The specifications for the delete.

option spec :delete [ Hash ] The delete document.
option spec :db_name [ String ] The name of the database on which
  the delete should be executed.
option spec :coll_name [ String ] The name of the collection on which
  the delete should be executed.
option spec :write_concern [ Mongo::WriteConcern ] The write concern
  for this operation.
option spec :ordered [ true, false ] Whether the operations should be
  executed in order.
option spec :options [Hash] Options for the command, if it ends up being a
  write command.

@since 2.0.0

Private Instance Methods

has_collation?() click to toggle source
# File lib/mongo/operation/write/delete.rb, line 63
def has_collation?
  delete[:collation] || delete[Operation::COLLATION]
end
message(server) click to toggle source
# File lib/mongo/operation/write/delete.rb, line 67
def message(server)
  selector = delete[Operation::Q]
  opts     = (delete[Operation::LIMIT] || 0) <= 0 ? {} : { :flags => [ :single_remove ] }
  Protocol::Delete.new(db_name, coll_name, selector, opts)
end
write_command_op() click to toggle source
# File lib/mongo/operation/write/delete.rb, line 57
def write_command_op
  s = spec.merge(:deletes => [ delete ])
  s.delete(:delete)
  Command::Delete.new(s)
end