module Mongoid::Bulk::Import

Constants

Result
VERSION

Public Instance Methods

bulk_insert(attributes = nil, options = {}, &block) click to toggle source
# File lib/mongoid/bulk/import.rb, line 10
def bulk_insert(attributes = nil, options = {}, &block)
  _creating do
    if attributes.is_a?(::Array)
      documents = attributes.map { |attrs| bulk_insert_obj(attrs, options, &block) }
    else
      documents = [bulk_insert_obj(attributes, options, &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) click to toggle source
# File lib/mongoid/bulk/import.rb, line 23
def bulk_insert_obj(attributes = nil, options = {}, &block)
  doc = attributes.kind_of?(Mongoid::Document) ? attributes : new(attributes, &block)
  doc.valid? if (options[:validate].nil? ? true : options[:validate])
  doc
end