class Mongo::Operation::Write::Bulk::Delete

A MongoDB bulk 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::Bulk::Delete.new({
  :deletes => [{ :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 :deletes [ Array ] The delete documents.
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

execute_write_command(server) click to toggle source
# File lib/mongo/operation/write/bulk/delete.rb, line 57
def execute_write_command(server)
  Result.new(Command::Delete.new(spec).execute(server))
end
messages() click to toggle source
# File lib/mongo/operation/write/bulk/delete.rb, line 61
def messages
  deletes.collect do |del|
    opts = ( del[Operation::LIMIT] || 0 ) <= 0 ? {} : { :flags => [ :single_remove ] }
    Protocol::Delete.new(db_name, coll_name, del[Operation::Q], opts)
  end
end