neo4j 获取包括节点数据在内的模型间的所有关系

4smxwvx5  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(95)

我有这个节点和关系,但是我有一个关于fromto节点信息的问题
我有这3笔交易

  • 从:111到:222 ->量:一万块
  • 从:222到:333 ->量:两千块
  • 从:222到:444 ->金额:四千块

有了这个查询(如果可以的话就不要shure)

MATCH path = (:Contact {contact_id: '111'})-[t:TRANSACTION*1..3]-()
With relationships(path) as relations
unwind relations as u_relations
With distinct(u_relations) as distinct_relations
return distinct_relations

字符串
我得到了我需要的信息,但我不知道如何添加每个事务的contact_id,结果是

{

  "identity": 0,
  "start": 0,
  "end": 1,
  "type": "TRANSACTION",
  "properties": {
    "date": "2023-08-03T17:08:34-03:00",
    "amount": 10000.0
  },
  "elementId": "0",
  "startNodeElementId": "0",
  "endNodeElementId": "1"
}
{
  "identity": 1,
  "start": 1,
  "end": 5,
  "type": "TRANSACTION",
  "properties": {
    "date": "2023-08-03T17:08:34-03:00",
    "amount": 2000.0
  },
  "elementId": "1",
  "startNodeElementId": "1",
  "endNodeElementId": "5"
}
{
  "identity": 2,
  "start": 1,
  "end": 6,
  "type": "TRANSACTION",
  "properties": {
    "date": "2023-08-03T17:08:35-03:00",
    "amount": 4000.0
  },
  "elementId": "2",
  "startNodeElementId": "1",
  "endNodeElementId": "6"
}


如何使用startend键获取contact_id并添加到结果中?

2ic8powd

2ic8powd1#

开始和结束键是指Neo4j内部节点标识符,不应该在Neo4j外部使用,因为它们可以随着时间的推移而改变。
你的查询本身不需要使用这些;以下查询应该可以工作:

MATCH (c:Contact {contact_id: '111'})-[t:TRANSACTION*1..3]-()
RETURN c, t

字符串
不需要使用distinct(t),因为Neo4j不会在单个路径内两次使用相同的关系。

相关问题