Neo4J从url获取id关系



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

http://localhost:7474/db/data/node/3071/relationships/out

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获取startend描述的URL,您将获得包含此metadataid属性的JSON-这是您的答案,没有正则表达式。

EDIT:正如下面的Michael Hunger所建议的那样——如果你愿意放弃JSON,你可以通过运行一个简单的密码查询来获得你想要的:

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

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

最新更新