【问题标题】:How to get the Node name in Neo4J如何在 Neo4J 中获取节点名称
【发布时间】:2018-01-30 12:02:09
【问题描述】:

我是 Neo4j 的新手,我指的是this tutorial

我没有找到关于如何使用 CQL 获取节点名称的任何答案。 例如:

如果我像这样创建两个节点:

CREATE (Dhawan:player{name: "Shikar Dhawan", YOB: 1985, POB: "Delhi"}) 
CREATE (Ind:Country {name: "India"})

然后在以后使用以下方法建立关系:

CREATE (Dhawan)-[r:BATSMAN_OF]->(Ind) 

我们如何知道节点名称:Dhawan 或 Ind? 使用:

MATCH (n) RETURN n 

我得到的是标签名称,而不是节点名称! 如何获取现有图形数据库的所有详细信息?

【问题讨论】:

  • 你试过MATCH (n) RETURN n.name吗?因为如果你想显示一个属性,你必须使用. 来获取它。希望你觉得它有用!

标签: neo4j cql


【解决方案1】:

您所称的“节点名称”实际上是一个变量,并且仅在单个查询期间存在(或者更少,如果您没有将它包含在 WITH 子句中并且它超出了范围)。它永远不会保存到图形数据库中,也不是持久数据。

在您的示例中,您只能使用 CREATE (Dhawan)-[r:BATSMAN_OF]->(Ind)(并让这些变量引用您之前创建的节点)如果在之前绑定了这些变量的同一查询中执行创建(并且仍在范围内) .

否则,这将创建两个新节点,在它们之间创建 :BATSMAN_OF 关系,并在它们的作用域内将这些变量绑定到新节点。

【讨论】:

  • 谢谢 InverseFalcon。现在是有道理的。您能否推荐任何书籍/网址来进行如此深入的解释。
  • 您可能希望从头开始完整阅读开发人员手册。 section on variables 很短,但结合手册的其余部分,应该清楚这些是短暂的,不会持久化。
猜你喜欢
  • 1970-01-01
  • 2017-02-15
  • 1970-01-01
  • 2022-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多