# File lib/mongo/grid/fs_bucket.rb, line 277
      def open_download_stream_by_name(filename, opts = {}, &block)
        revision = opts.fetch(:revision, -1)
        if revision < 0
          skip = revision.abs - 1
          sort = { 'uploadDate' => Mongo::Index::DESCENDING }
        else
          skip = revision
          sort = { 'uploadDate' => Mongo::Index::ASCENDING }
        end
        file_doc = files_collection.find({ filename: filename} ,
                                           projection: { _id: 1 },
                                           sort: sort,
                                           skip: skip,
                                           limit: -1).first
        unless file_doc
          raise Error::FileNotFound.new(filename, :filename) unless opts[:revision]
          raise Error::InvalidFileRevision.new(filename, opts[:revision])
        end
        open_download_stream(file_doc[:_id], &block)
      end