docs: def find_records(self, collection_name, query={}, sort_by=None,
                       sort_direction=None, start=0, limit=None):
          """
          Return a cursor of records from the given MongoDB collection.
  
          :param collection_name: Name of the MongoDB collection to query.
          :param query: Standard MongoDB query. By default no restriction.
          :param sort_by: Name of a single field to sort by.
          :param sort_direction: The direction to sort, "asc" or "desc".
          :param start: Skip first n results.
          :param limit: The maximum number of results to return.
  
          :return: Cursor -- An iterable with results.
          :raise DataSourceError
          """
          cursor = self._get_collection(collection_name).find(query)
          if sort_by is not None:
              cursor = self._apply_sort(cursor, sort_by, sort_direction)
          cursor = cursor.skip(start)
          if limit is not None:
              cursor = cursor.limit(limit)
          return MongoDbCursor(cursor)