# File lib/mongoid/relations/embedded/many.rb, line 254
        def substitute(replacement)
          tap do |proxy|
            if replacement.blank?
              if _assigning? && !proxy.empty?
                base.atomic_unsets.push(proxy.first.atomic_path)
              end
              proxy.clear
            else
              atomically(:$set) do
                if replacement.first.is_a?(Hash)
                  replacement = Many.builder(base, metadata, replacement).build
                end
                proxy.target = replacement.compact
                if _assigning?
                  base.delayed_atomic_sets[metadata.name.to_s] = proxy.as_document
                end
                proxy.target.each_with_index do |doc, index|
                  integrate(doc)
                  doc._index = index
                  doc.save if base.persisted? && !_assigning?
                end
              end
            end
          end
        end