2013-12-26 2 views
1

Можно ли клонировать произвольные узлы и отношения в одном запросе Cypher neo4j 2.0? «Произвольный» читает «без указания их меток и типов отношений». Что-то вроде:Клонные узлы и отношения с Cypher

MATCH (node1:NodeType)-[e]->(n) 
CREATE (clone: labels(n)) set clone=n set clone.prop=1 
CREATE (node1)-[e1:type(e)]->(clone) set e1=e set e1.prop=2 

не действует в Cypher, поэтому никто не может просто получить этикетки от одного узла или отношений и назначить их на другую, потому что метки составляются в запросе буквально.

Несомненно, метки и типы отношений важны для MATCH и WHERE для создания эффективного плана запросов, но не CREATE делает другой случай?

ответ

1

Самый простой способ клонирования частей графика - использовать dump command in Neo4j shell. dump генерирует cypher create заявления из ваших return статей. Результат создания дампа может быть привязан к базе данных графа для создания клонов.

+0

Я пытаюсь сделать это точно так же. Оказывается, файл дампа сохраняет все отношения по номерам источников и номеров узлов, но при применении сценария Cypher, сгенерированного дампом, neo4j не учитывает идентификаторы узлов, которые жестко закодированы в коде Cypher и регенерируют их. Это в конечном итоге нарушает все отношения. Любая идея, как это исправить? – retrography

+0

Команда 'dump' не испускает идентификаторы внутренних узлов. Идентификатор узла - это деталь реализации. –

+0

Есть ли способ пропустить команду дампа в файл, а не на консоль? –

Смежные вопросы