neo4j - neo4j - 不将关系链接到已创建的节点
问题描述
我正在使用 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 个关系。
你能告诉我我做错了什么并建议如何解决这个问题吗?
解决方案
根据对主要问题的评论,您似乎分别执行了每个查询,而不是在单个查询中一起执行。
请记住,变量不会保存到数据库中,并且仅在单个查询期间存在(如果由于未包含在查询中的 WITH 子句中而超出范围,则有时会更少)。
因此,对于第二个查询:
create (a) -[:IS_PROJECT_FOR]->(:DVL {Naam : 'B'})
执行 this 时范围内没有任何内容,因此a
here 不会引用a
上一个查询中的变量。相反,由于这是a
查询的第一次使用,它将绑定到一个新创建的空白节点(没有标签,没有属性),并且将使用提供的属性创建一个 :DVL 节点,然后是 :IS_PROJECT_FOR增加了它们之间的关系。
如果这两个创建是在同一个查询中执行的,那么a
从第一个创建开始仍然在范围内,并且该节点将是执行第二个创建时使用的节点。
推荐阅读
- python - mysql.connector.connect() 是否记得它的启动时间并且不显示带有时间戳的数据?
- android - 如何在点击时更新我的地图在 Google 地图中的位置?
- apache-kafka - 带有自定义 JSON 序列化程序的 Kafka Streams
- excel - 如何使用 Power Query 对类似调查答案的数据进行分组
- postgresql - 在 PostgreSQL 中计算不包括周末的天数
- android - 以编程方式单击jetpack compose中的文本字段
- python - 为什么创建模型后数据库中的外键为 NULL?
- node.js - 尝试需要模块时遇到问题 - Node.js
- spreadsheet - Google Sheet - 在 A 列中搜索“Cat”或“Dog”,然后返回 B 列相应范围的最大值
- .net-core - C# MongoDB 驱动程序通过过滤或任何聚合框架管道替换递归调用