我想知道是否可以通过名称来匹配一个节点。我不想通过属性,标签或连接进行匹配。我想存储一个节点“ Start Time”,并在以后检索它的值。我可以在不分配名称属性的情况下匹配该节点吗?
正在创建查询:
CREATE (Start Time:timestamp {name: "Time Stamp", time: 0239213021312 })
工作匹配查询:
"MATCH (n: timestamp {name:'Time Stamp'})
我也可以查询该节点吗?
创建查询:
CREATE (Start Time:timestamp {time: 0239213021312 })
[更新]
您可以通过其本机ID查找节点,只要该节点从未被删除,并且您使用生成该ID的相同neo4j数据库实例。
当数据库实例创建节点时,该实例将为该节点分配实例当时未使用的本机ID。当数据库实例删除节点时,该实例可以将删除的节点的本机ID分配给以后创建的另一个节点。
假设满足上述条件:
如果节点已经存在,则可以一次获取其本机ID(如下所示),然后在需要它的查询中对本机ID进行硬编码。 (在这种情况下,即使以后删除name
属性,本机ID也不会更改。)
MATCH (startTime:timestamp {name: "Time Stamp"})
RETURN ID(startTime);
您可以在创建节点时获得其本机ID(如下所示),然后在需要它的查询中对它进行硬编码。 (在这种情况下,甚至不需要指定name
属性。)
CREATE (startTime:timestamp {time: 0239213021312})
RETURN ID(startTime);
如果本机ID是123,那么您可以稍后通过以下方式获取节点:
MATCH (n)
WHERE ID(n) = 123
...
另一方面,如果该节点可能被删除,那么它将必须具有一些具有唯一值的属性,您可以查询该属性。