在Neo4j中使用密码匹配节点名称
我想知道是否可以通过名称匹配节点。 我不想通过属性、标签或连接进行匹配。我想存储一个节点“开始时间”,稍后再检索它的值。我可以在不指定name属性的情况下匹配此节点吗 正在创建查询:在Neo4j中使用密码匹配节点名称,neo4j,cypher,graph-databases,Neo4j,Cypher,Graph Databases,我想知道是否可以通过名称匹配节点。 我不想通过属性、标签或连接进行匹配。我想存储一个节点“开始时间”,稍后再检索它的值。我可以在不指定name属性的情况下匹配此节点吗 正在创建查询: CREATE (Start Time:timestamp {name: "Time Stamp", time: 0239213021312 }) CREATE (Start Time:timestamp {time: 0239213021312 }) 工作匹配查询: "MATCH (n: timestamp {
CREATE (Start Time:timestamp {name: "Time Stamp", time: 0239213021312 })
CREATE (Start Time:timestamp {time: 0239213021312 })
工作匹配查询:
"MATCH (n: timestamp {name:'Time Stamp'})
我也可以查询这个节点吗
创建查询:
CREATE (Start Time:timestamp {name: "Time Stamp", time: 0239213021312 })
CREATE (Start Time:timestamp {time: 0239213021312 })
[更新]
您可以通过其本机ID找到节点,只要该节点从未被删除,并且您使用生成该ID的同一个neo4j数据库实例
当数据库实例创建节点时,该实例将为该节点分配一个本机ID,而该实例当时并未使用该ID。当数据库实例删除节点时,该实例可以将已删除节点的本机ID分配给以后创建的另一个节点
假设满足上述标准:
- 如果节点已经存在,您可以获取其本机ID一次(如下所示),然后在需要的查询中硬编码本机ID。(在这种情况下,即使稍后删除
属性,本机ID也不会更改。)name
- 您可以在创建节点时获取其本机ID(如下所示),然后在需要的查询中硬编码本机ID。(在这种情况下,甚至不需要指定
属性。)名称
MATCH (n)
WHERE ID(n) = 123
...
另一方面,如果节点可能被删除,那么它必须具有一些具有唯一值的属性,您可以查询这些属性。注意,您所称的“节点名称”实际上是一个变量,变量不会持久化到图形中,因此在查询之外无法访问。但是,第一个匹配查询,我用来检索本机ID的属性仍然需要首先设置的name属性吗?或者:CREATE(开始时间:timestamp{Time:0239213021312})是否为?提供“名称”:MATCH(startTime:timestamp{name:“Time Stamp”})我已经更新了我的答案,希望能回答我认为你在问的问题。是的,这很好地回答了这个问题,感谢你解释了它背后的基本逻辑!