class Mongo::Operation::Write::Update

Initialization:

param [ Hash ] spec The specifications for the update.

option spec :update [ Hash ] The update document.
option spec :db_name [ String ] The name of the database on which
  the query should be run.
option spec :coll_name [ String ] The name of the collection on which
  the query should be run.
option spec :write_concern [ Mongo::WriteConcern ] The write concern.
option spec :options [ Hash ] Options for the command, if it ends up being a
  write command.

@since 2.0.0

Private Instance Methods

has_array_filters?() click to toggle source
# File lib/mongo/operation/write/update.rb, line 67
def has_array_filters?
  update[Operation::ARRAY_FILTERS]
end
has_collation?() click to toggle source
# File lib/mongo/operation/write/update.rb, line 71
def has_collation?
  update[:collation] || update[Operation::COLLATION]
end
message(server) click to toggle source
# File lib/mongo/operation/write/update.rb, line 75
def message(server)
  flags = []
  flags << :multi_update if update[Operation::MULTI]
  flags << :upsert if update[Operation::UPSERT]

  Protocol::Update.new(
    db_name,
    coll_name,
    update[Operation::Q],
    update[Operation::U],
    flags.empty? ? {} : { flags: flags }
  )
end
write_command_op() click to toggle source
# File lib/mongo/operation/write/update.rb, line 61
def write_command_op
  s = spec.merge(:updates => [ update ])
  s.delete(:update)
  Command::Update.new(s)
end