Module: Mongoid::Bulk::Import
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/mongoid/bulk/import.rb,
lib/mongoid/bulk/import/version.rb
Defined Under Namespace
Classes: Result
Constant Summary collapse
- VERSION =
"0.2.0"
Instance Method Summary collapse
- #bulk_insert(attributes = nil, options = {}, &block) ⇒ Object
- #bulk_insert_obj(attributes = nil, options = {}, &block) ⇒ Object
Instance Method Details
#bulk_insert(attributes = nil, options = {}, &block) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/mongoid/bulk/import.rb', line 10 def bulk_insert(attributes = nil, = {}, &block) _creating do if attributes.is_a?(::Array) documents = attributes.map { |attrs| bulk_insert_obj(attrs, , &block) } else documents = [bulk_insert_obj(attributes, , &block)] end valid_documents, invalid_documents = documents.partition { |doc| doc.errors.none? } response = collection.insert_many(valid_documents.map(&:as_document)) unless valid_documents.blank? Result.new(invalid_documents, response&.inserted_count || 0, response&.inserted_ids || []) end end |
#bulk_insert_obj(attributes = nil, options = {}, &block) ⇒ Object
23 24 25 26 27 |
# File 'lib/mongoid/bulk/import.rb', line 23 def bulk_insert_obj(attributes = nil, = {}, &block) doc = new(attributes, &block) doc.valid? if ([:validate].nil? ? true : [:validate]) doc end |