【问题标题】:Clone nodes and relationships with Cypher克隆节点和与 Cypher 的关系
【发布时间】:2013-12-26 05:26:31
【问题描述】:

是否可以在单个 Cypher neo4j 2.0 查询中克隆任意节点和关系? “任意”读作“未指定其标签和关系类型”。比如:

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 不是另一种情况吗?

【问题讨论】:

    标签: neo4j


    【解决方案1】:

    克隆图的某些部分的最简单方法是使用dump command in Neo4j shelldump 从您的 return 子句生成密码 create 语句。转储的结果可以应用到图数据库以创建克隆。

    【讨论】:

    • 我正在尝试做同样的事情。结果转储文件通过源节点和目标节点号保存所有关系,但是当应用转储生成的 Cypher 脚本时,neo4j 不考虑在 Cypher 代码中硬编码的节点 ID 并重新生成它们。这最终破坏了所有的关系。知道如何解决这个问题吗?
    • dump 命令不会发出内部节点 ID。节点 ID 是一个实现细节。
    • 有没有办法将转储命令执行到文件中,而不是到控制台?
    • echo "dump" | bin/neo4j-shell > output.cypher
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多