# File lib/mongoid/criteria.rb, line 303
    def search(*args)
      raise_invalid if args[0].nil?
      type = args[0]
      params = args[1] || {}
      return [ :ids, for_ids(type) ] unless type.is_a?(Symbol)
      conditions = params.delete(:conditions) || {}
      if conditions.include?(:id)
        conditions[:_id] = conditions[:id]
        conditions.delete(:id)
      end
      return [ type, where(conditions).extras(params) ]
    end