'Find all structures that originated from ``original_version`` that contain ``block_key``.
Arguments:
original_version (str or ObjectID): The id of a structure
block_key (BlockKey): The id of the block in question'

@autoretry_read()
def find_ancestor_structures(self, original_version, block_key, course_context=None):

    with TIMER.timer('find_ancestor_structures', course_context) as tagger:
        docs = [structure_from_mongo(structure, course_context) for structure in self.structures.find({'original_version': original_version, 'blocks': {'$elemMatch': {'block_id': block_key.id, 'block_type': block_key.type, 'edit_info.update_version': {'$exists': True}}}})]
        tagger.measure('structures', len(docs))
        return docs
