def find_records(self, collection_name, query={}, sort_by=None,
                     sort_direction=None, start=0, limit=None):
        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)