Neo4J从url获取id关系

Neo4J从url获取id关系,neo4j,relationship,Neo4j,Relationship,在Neo4j中,我返回一个节点列表,在循环中,我从中读取它们的id,对于所有节点,我使用(在本例中,我使用node_id=3071)读取它们的关系: JSON输出(对于id的指定值)如下所示: [{'end': 'http://localhost:7474/db/data/node/3070', 'extensions': {}, 'self': 'http://localhost:7474/db/data/relationship/11101', 'property': 'http://loc

在Neo4j中,我返回一个节点列表,在循环中,我从中读取它们的id,对于所有节点,我使用(在本例中,我使用node_id=3071)读取它们的关系:

JSON输出(对于id的指定值)如下所示:

[{'end': 'http://localhost:7474/db/data/node/3070',
'extensions': {},
'self': 'http://localhost:7474/db/data/relationship/11101',
'property': 'http://localhost:7474/db/data/relationship/11101/properties/{key}',
'type': 'IS', 'properties': 'http://localhost:7474/db/data/relationship/11101/properties',
'data': {},
'start': 'http://localhost:7474/db/data/node/3071'}]
我们观察到我们的节点3071连接到3070。然而,结果是一个模糊的过程
形式而不是简单的形式。如果不使用正则表达式,我如何获得这个3070(连接节点的ID)?

我想答案是您没有

这里您的特定REST查询是请求关系。节点ID是节点的属性,您不希望在请求关系时提供该属性

然后服务器响应的JSON将包括以下内容:

"metadata" : {
   "id" : 4147,
   "labels" : [ "Person" ]
}
但这只适用于获取有关节点的信息

不过,您可能也在使用旧版本。在同一个REST调用的示例中,您希望看到此元数据对象具有关系的ID,但它没有包含在来自服务器的示例响应中

考虑使用REST API获取
start
end
所描述的URL,您将获得包含此
元数据的JSON,该元数据带有
id
属性-这是您的答案,没有正则表达式

编辑:正如Michael Hunger所建议的那样-如果您愿意远离JSON,您可以通过运行简单的密码查询来获得您想要的:

MATCH (n)-->(other) WHERE id(n) in {ids} RETURN id(other),other

other
参数指定为
{“id”:[307130723073]}
。但与其他解决方案(单独获取节点)一样,它需要额外的调用;您无法从查询事件关系的响应中获取信息。

我实际上会使用Cypher来执行您试图执行的操作:
MATCH(n)-->(other)其中{ids}RETURN id(other)中的id(n),other
参数将是
{“ids”:[307130723073]}
编辑以包括此项。我认为最初的问题让我有点困惑,因为OP似乎试图从事件相关查询中获取这些信息。可能有很多不同的方法来获取节点ID(但都假定需要额外的调用)
MATCH (n)-->(other) WHERE id(n) in {ids} RETURN id(other),other