Method: Mongoid::Relations::Embedded::Many#delete_if

Defined in:
lib/mongoid/relations/embedded/many.rb

#delete_ifMany, Enumerator

Delete all the documents for which the provided block returns true.

Examples:

Delete the matching documents.

person.addresses.delete_if do |doc|
  doc.state = "GA"
end

Returns:

  • (Many, Enumerator)

    The relation or an enumerator if no block was provided.

Since:

  • 3.1.0



191
192
193
194
195
196
197
198
199
200
# File 'lib/mongoid/relations/embedded/many.rb', line 191

def delete_if
  if block_given?
    target.each do |doc|
      delete(doc) if yield(doc)
    end
    self
  else
    super
  end
end