docs: def sort(self, key_or_list, direction=None):
          """Sorts this cursor's results.
  
          Pass a field name and a direction, either
          :data:`~pymongo.ASCENDING` or :data:`~pymongo.DESCENDING`::
  
              for doc in collection.find().sort('field', pymongo.ASCENDING):
                  print(doc)
  
          To sort by multiple fields, pass a list of (key, direction) pairs::
  
              for doc in collection.find().sort([
                      ('field1', pymongo.ASCENDING),
                      ('field2', pymongo.DESCENDING)]):
                  print(doc)
  
          Beginning with MongoDB version 2.6, text search results can be
          sorted by relevance::
  
              cursor = db.test.find(
                  {'$text': {'$search': 'some words'}},
                  {'score': {'$meta': 'textScore'}})
  
              # Sort by 'score' field.
              cursor.sort([('score', {'$meta': 'textScore'})])
  
              for doc in cursor:
                  print(doc)
  
          Raises :class:`~pymongo.errors.InvalidOperation` if this cursor has
          already been used. Only the last :meth:`sort` applied to this
          cursor has any effect.
  
          :Parameters:
            - `key_or_list`: a single key or a list of (key, direction)
              pairs specifying the keys to sort on
            - `direction` (optional): only used if `key_or_list` is a single
              key, if not given :data:`~pymongo.ASCENDING` is assumed
          """
          self.__check_okay_to_chain()
          keys = helpers._index_list(key_or_list, direction)
          self.__ordering = helpers._index_document(keys)
          return self