Я работал с потоковым алгоритмом unionFind для визуализации связанных компонентов базы данных.Я хотел бы вывести таблицу, показывающую все узлы сети, а также количество узлов определенной метки в соответствующем сообществе каждого узла
Например, скажем, у меня есть список сотрудников во всей школеокруг, и я хотел бы определить количество учителей в школе каждого сотрудника (школа, являющаяся связанным компонентом всей сети округа)
Я попытался назначить setID (получаемый от unionFind.stream) для каждогоузел и вызов нескольких операторов сопоставления для уточнения по метке узла.Я также безуспешно пытался использовать оператор FOREACH.
CALL algo.unionFind.stream()
YIELD nodeId, setId
MATCH(n)
SET n.setId = setId
MATCH setList = collect(setId)
WITH MATCH(n) WHERE n.setId in setList
MATCH p = (n) WHERE n._label = 'Teacher'
RETURN n.setID as component_id, count(p) as number_of_teachers;
Я понимаю, что функция сбора может быть использована здесь неправильно.Я надеюсь сначала назначить установленный идентификатор каждому узлу n, а затем создать список всех установленных идентификаторов, называемых сет-листом, из которого я могу позвонить.Вместо этого я получаю сообщение об ошибке на линии сбора.