def find_usid_policy(database, key=None, lr_dst=None,
                     rl_dst=None, lr_nodes=None, rl_nodes=None,
                     table=None, metric=None):
    """
    Find a uSID policy in the 'usid_policies' collection of a Arango database.

    :param database: Database where to lookup the uSID policy.
    :type database: arango.database.StandardDatabase
    :param key: Key of the searched document.
    :type key: int, optional
    :param lr_dst: Destination (IP address or network prefix) for the
                   left-to-right path.
    :type lr_dst: str, optional
    :param rl_dst: Destination (IP address or network prefix) for the
                   right-to-left path.
    :type rl_dst: str, optional
    :param lr_nodes: List of nodes making the left-to-right path.
    :type lr_nodes: list, optional
    :param rl_nodes: List of nodes making the right-to-left path.
    :type rl_nodes: list, optional
    :param table: FIB table where the policy is saved.
    :type table: int, optional
    :param metric: Metric (weight) of the policy.
    :type metric: int, optional
    :return: Document cursor.
    :rtype: arango.cursor.Cursor
    :raises arango.exceptions.DocumentGetError: If retrieval fails.
    """
    # Get the uSID policy collection
    # This returns an API wrapper for "usid_policies" collection
    usid_policies = database.collection('usid_policies')
    # Build a dict representation of the policy
    policy = dict()
    if key is not None:
        policy['_key'] = str(key)
    if lr_dst is not None:
        policy['lr_dst'] = lr_dst
    if rl_dst is not None:
        policy['rl_dst'] = rl_dst
    if lr_nodes is not None:
        policy['lr_nodes'] = lr_nodes
    if rl_nodes is not None:
        policy['rl_nodes'] = rl_nodes
    if table is not None:
        policy['table'] = table
    if metric is not None:
        policy['metric'] = metric
    # Find the policy
    # Return all documents that match the given filters
    return usid_policies.find(filters=policy)