Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Neo4j中使用密码匹配节点名称_Neo4j_Cypher_Graph Databases - Fatal编程技术网

在Neo4j中使用密码匹配节点名称

在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 {

我想知道是否可以通过名称匹配节点。 我不想通过属性、标签或连接进行匹配。我想存储一个节点“开始时间”,稍后再检索它的值。我可以在不指定name属性的情况下匹配此节点吗

正在创建查询:

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。(在这种情况下,即使稍后删除
    name
    属性,本机ID也不会更改。)

  • 您可以在创建节点时获取其本机ID(如下所示),然后在需要的查询中硬编码本机ID。(在这种情况下,甚至不需要指定
    名称
    属性。)

如果本机ID为123,则稍后可以通过以下方式获取节点:

MATCH (n)
WHERE ID(n) = 123
...

另一方面,如果节点可能被删除,那么它必须具有一些具有唯一值的属性,您可以查询这些属性。

注意,您所称的“节点名称”实际上是一个变量,变量不会持久化到图形中,因此在查询之外无法访问。但是,第一个匹配查询,我用来检索本机ID的属性仍然需要首先设置的name属性吗?或者:CREATE(开始时间:timestamp{Time:0239213021312})是否为?提供“名称”:MATCH(startTime:timestamp{name:“Time Stamp”})我已经更新了我的答案,希望能回答我认为你在问的问题。是的,这很好地回答了这个问题,感谢你解释了它背后的基本逻辑!