def build (obj)
      obj = @klass.new(obj) if obj.is_a?(Hash)
      raise ArgumentError.new("#{obj.inspect} is not a #{@klass}") unless obj.is_a?(@klass)
      obj.parent = @parent
      self << obj
      obj
    end
def build (obj)
      obj = @klass.new(obj) if obj.is_a?(Hash)
      raise ArgumentError.new("#{obj.inspect} is not a #{@klass}") unless obj.is_a?(@klass)
      obj.parent = @parent
      self << obj
      obj
    end
Similar add an EmbeddedDocument to the array and return the object. If the object passed
 in is a Hash, it will be used to make a new EmbeddedDocument.