我有两个Neo4j节点,用户和兴趣点。用户与兴趣相关,并且兴趣可以与其他兴趣相关。
我想编写一个Cypher查询,该查询可以检索用户的兴趣,但是还可以告诉我哪些兴趣相关。如果这些利益与用户不感兴趣的其他利益有关,则不应将其退还。
因此,例如,鲍勃(Bob)对金融和比特币感兴趣,而金融和比特币则相互关联。比特币也连接到了区块链,但用户对此并不感兴趣,因此不应返回这种关系。
这是我到目前为止所拥有的:
MATCH (u:User)-[r:INTERESTED_IN]-(i:Interest)
WHERE u.name = 'Bob'
RETURN u, r, i
这会带回个人兴趣,但是有一种简单的方法可以在同一查询中带回关联的兴趣吗?
答案 0 :(得分:0)
尝试这样的事情:
MATCH
(u:User)-[r1:INTERESTED_IN]-(i1:Interest),
(u)-[r2:INTERESTED_IN]-(i2:Interest),
(i1)-[:RELATED]-(i2)
WHERE u.name = 'Bob'
RETURN u, r1, i1, r2, i2
这里我假设兴趣是通过:RELATED
关联的,请根据需要进行调整。