Method: Mongo::CollectionExt#update_with_ext

Defined in:
lib/mongo_db/driver/collection.rb

#update_with_ext(selector, doc, opts = {}) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/mongo_db/driver/collection.rb', line 19

def update_with_ext selector, doc, opts = {}
  selector = convert_underscore_to_dollar_in_selector selector
  doc      = convert_underscore_to_dollar_in_update doc

  # because :multi works only with $ operators, we need to check if it's applicable
  opts = if doc.keys.any?{|k| k =~ /^\$/}
    reverse_merge_defaults(opts, :safe, :multi)
  else
    reverse_merge_defaults(opts, :safe)
  end

  update_without_ext selector, doc, opts
end