У меня есть разные узлы, которые совместно используют одно и то же поле свойств, мне нужно объединить эти узлы в один и в то же время скопировать все остальные другие свойства в узле слияния.
пример:
(n1, g, p1) (n2, g, p2) (n3, g, p3) => (n, g, p1, p2, p3)
Важно отметить, что мне не нужны решения apoc
, поскольку пользовательские функции не работают в CAPS, с которым я работаю на
обновление:
geohash - это поле с повторяющимися значениями, поэтому я хочу объединить узлы этим полем.
Команда CAPS дала мне этот зашифрованный запрос, чтобы иметь отличные узлы геохеша от начального графа:
CATALOG CREATE GRAPH temp {
FROM GRAPH session.inputGraph
MATCH (n)
WITH DISTINCT n.geohash AS geohash
CONSTRUCT
CREATE (:HashNode {geohash: geohash})
RETURN GRAPH
}
, однако он все еще отсутствует - это набор остальных свойств объединенных узлов.
У меня нет проблем с отношениями, потому что мы можем скопировать их позже из начального графа:
FROM GRAPH inputGraph
MATCH (from)-[via]->(to)
FROM GRAPH temp
MATCH (n), (m)
WHERE from.geohash = n. AND AND to.geohash = m.geohash
CONSTRUCT
CREATE (n)-[COPY OF via]->(m)
RETURN GRAPH