【问题标题】:Can't create the relationship in Neo4j无法在 Neo4j 中创建关系
【发布时间】:2016-12-09 07:06:31
【问题描述】:

尝试在neo4j中创建关系,但是失败了。 我有 2 个节点,服务器和虚拟机。现在我想创建这两个节点之间的关系。

MATCH (s:Server {name:"DHAAPP01"})
RETURN  s.name;
MATCH (v:VirtualMachine {virtualhost:"DHAAPP01"})
RETURN  v.name,v.virtualhost;

然后我尝试用create命令创建关系

CREATE (v:VirtualMachine)-[r:DEPENDS]->(s:Server)

即使创建了关系,它仍然无法在graphDB中显示关系。 我也尝试将 2 种模式与命令匹配,但也失败了。

MATCH (v:VirtualMachine)-[r:DEPENDS]-(s:Server)
WHERE v.name= 'DHA'
AND s.name = 'DHAAPP01'
RETURN v.name, v:VirtualMachine;

需要您的帮助和建议我的命令有什么问题吗?感谢您的帮助

【问题讨论】:

    标签: graph neo4j cypher


    【解决方案1】:

    您可能无意中创建了一个新的 :VirtualMachine 和新的 :Server 节点。这就是您的第一个 CREATE 命令所做的,我很确定这不是您想要的。

    对于创建特定节点之间的关系,只需匹配到它们,并使用匹配中的变量创建它们之间的关系,如果需要返回,返回变量,包括关系上的变量:

    MATCH (s:Server {name:"DHAAPP01"})
    MATCH (v:VirtualMachine {virtualhost:"DHAAPP01"})
    MERGE (v)-[r:DEPENDS]->(s)
    RETURN v, r, s
    

    【讨论】:

    • 我对您的查询所做的分析进行了分析。查询中的 CREATE 子句创建了给定的模式:两个新节点以及它们之间的关系。我相应地更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多