【问题标题】:Create Relationship in nodes and Using quotes and back tick in Cypher - Neo4J在节点中创建关系并在 Cypher 中使用引号和反引号 - Neo4J
【发布时间】:2013-10-05 12:05:39
【问题描述】:


我是 Neo4j 的新手,我用下面的 Cypher 创建了两个节点,如何在它们之间建立关系?

CREATE (Someone { name:'Abhilash',from :'Kerala',knows:'java' }) return someone;

CREATE (Someone { name:'Theo',worked :'WALMART',from:'kUNOOR' });return someone;

关系是“团队:质量控制”。

第二个问题

我还在一些创建节点查询中看到了在代码中使用反勾号 (`) 符号的情况。 例如

CREATE (_1:`Someone` { `name`:"Abhilash",`from`:"Kerala":,`knows`:"java" })

第一个create语句和上面的create语句有什么区别? 我们可以将节点的属性创建为

{key:'Values'} or {<back tick> key <back tick>:"Values"} 

是`

我对在 query 中使用 tick(`)、双引号 ("") 和单引号 (') 的不同方式感到很困惑。谁能帮我理解使用这些字符的正确场景?

更新 感谢您的澄清。我使用下面的查询来创建关系,但它没有返回任何结果或在我的节点之间创建关系。这是我的声明,

MATCH (a:someone),(b:someone) 
WHERE a.name = 'Abhilash' AND b.name = 'Theo' 
CREATE a-[r:RELTYPE]->b 
RETURN r

【问题讨论】:

  • 您可能还将fromknows 信息建模为与适当位置和技能节点的关系。

标签: neo4j cypher graph-databases


【解决方案1】:

仅当属性名称或 reltype 中包含对密码无效的字符(例如空格或连字符)时,才使用反引号。我建议避免使用反引号。

双引号和单引号可以互换来表示字符串,类似于 JavaScript。我通常会使用双引号并用反斜杠转义内部双引号:{dialog:"Joe said, \"Hello World.\""}...

顺便说一句,您可能不想将“团队:质量控制”用作关系。这可能应该是与每个团队成员都有关系的节点。

【讨论】:

  • 感谢您的澄清。我使用下面的查询来创建关系,但它没有返回任何结果或在我的节点之间创建关系。这是我的陈述, MATCH (a:someone),(b:someone) WHERE a.name = 'Abhilash' AND b.name = 'Theo' CREATE a-[r:RELTYPE]->b RETURN r
  • 尝试将 CREATE 排除在查询之外并返回 *,以查看是否找到了 a 和 b。
  • 看起来您可能正在使用小写标签,而您应该使用大写。标签区分大小写。 (a:Someone)...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-12
  • 2014-04-15
相关资源
最近更新 更多