def slice(criterion = nil)
      option(criterion) do |options|
        options.__union__(
          fields: criterion.inject({}) do |option, (field, val)|
            option.tap { |opt| opt.store(field, { "$slice" => val }) }
          end
        )
      end
    end
def slice(criterion = nil)
      option(criterion) do |options|
        options.__union__(
          fields: criterion.inject({}) do |option, (field, val)|
            option.tap { |opt| opt.store(field, { "$slice" => val }) }
          end
        )
      end
    end
Limit the returned results via slicing embedded arrays.

 @example Slice the returned results.
   optional.slice(aliases: [ 0, 5 ])

 @param [ Hash ] criterion The slice options.

 @return [ Optional ] The cloned optional.

 @since 1.0.0