【发布时间】:2018-08-22 08:01:58
【问题描述】:
我使用的是 Neo4j 服务器版本:3.4.4(企业版)和 Neo4j 浏览器版本:3.2.5。
当我运行这些命令时:
create (a:DVK {Naam : 'A'}) -[:IS_PROJECT_FOR]->(:DVL {Naam : 'C'})
create (a) -[:IS_PROJECT_FOR]->(:DVL {Naam : 'B'})
我创建了 4 个节点:A、B、C 和另一个节点,以及 2 个关系。我期望有 3 个节点:A、B、C 有 2 个关系。
你能告诉我我做错了什么并建议如何解决这个问题吗?
【问题讨论】:
-
我用 Neo4j 3.4.4 企业版和浏览器 3.2.5 测试了您的查询,它按预期创建了 3 个节点和 2 个关系。您确定这是创建 4 个节点的查询吗?请注意,如果您不重用
a变量,您将获得 4 个节点,您确定两个创建中的变量都匹配吗? -
此外,如果您在每行末尾有冒号,它们将成为单独的语句,因此变量不会保留在范围内,请注意这一点。
-
@InverseFalcon :是的,我使用了这 2 行语句并且我有 4 个节点。对于这个测试,我不重用 a 变量。如果我查看表,我会看到 3 个节点,但是当我查看关系表时,我有空字段(见附件)
-
我认为您的附件没有通过,请重试或修改您的问题以包含它。至于返回关系,表格视图将只显示属性映射。检查代码结果选项卡以查看通过驱动程序处理结果时可用的内容。同样如前所述,如果您没有在第二次创建中重用变量(如
a变量),那么预计会有 4 个节点。 CREATE 创建整个模式,它不会尝试首先匹配图中的元素,如果需要,您需要自己进行。 -
@InverseFalcon :我进行了另一项测试 - 将两个语句放在一个查询中为我提供了三个具有两个关系的节点,这是我所期望的,但在我的情况下为一个查询放置 1 个语句两个查询没有'不给我预期的结果。
标签: neo4j