相同类型节点之间的neo4j密码计数关系
neo4j cypher count relations between same type of nodes
我对图形数据库太陌生了,我在从这样的模型中获取数据时遇到了问题。
我正在尝试计算 User1 和与 user1 同组的所有其他用户之间的共同点赞数。这是我试图为 User1:
获得的结果
User , Count, Drinks
User3, 2, [ Cola, Beer ]
User2, 1, [ Cola ]
User5, 1, [ Tea ]
User4, 0, [ ]
User6, 0, [ ]
这看起来很容易,但对我来说却不是。
我可以获取与用户有关系的用户和计数,但不能与没有关系的用户进行计数。请问有人可以帮我吗?提前致谢!
我提出的解决方案逻辑如下:
- 找到用户1
- 查找用户 1 以外的其他用户
- 为用户 1、饮料和其他用户的当前迭代之间的路径找到 OPTIONAL MATCH
这是基于以下测试图:
http://console.neo4j.org/r/xc3cqt
查询:
MATCH (u:User { id:1 })
MATCH (o:User)
WHERE o <> u
OPTIONAL MATCH (u)-[r:LIKES]->(d)<-[:LIKES]-(o)
RETURN o.id, count(r) as c, collect(DISTINCT (d.name)) AS drink
您提供的图表的结果:
o.id c drink
2 1 [Cola]
5 1 [Tea]
4 0 []
3 2 [Beer, Cola]
6 0 []
我对图形数据库太陌生了,我在从这样的模型中获取数据时遇到了问题。
我正在尝试计算 User1 和与 user1 同组的所有其他用户之间的共同点赞数。这是我试图为 User1:
获得的结果User , Count, Drinks
User3, 2, [ Cola, Beer ]
User2, 1, [ Cola ]
User5, 1, [ Tea ]
User4, 0, [ ]
User6, 0, [ ]
这看起来很容易,但对我来说却不是。
我可以获取与用户有关系的用户和计数,但不能与没有关系的用户进行计数。请问有人可以帮我吗?提前致谢!
我提出的解决方案逻辑如下:
- 找到用户1
- 查找用户 1 以外的其他用户
- 为用户 1、饮料和其他用户的当前迭代之间的路径找到 OPTIONAL MATCH
这是基于以下测试图:
http://console.neo4j.org/r/xc3cqt
查询:
MATCH (u:User { id:1 })
MATCH (o:User)
WHERE o <> u
OPTIONAL MATCH (u)-[r:LIKES]->(d)<-[:LIKES]-(o)
RETURN o.id, count(r) as c, collect(DISTINCT (d.name)) AS drink
您提供的图表的结果:
o.id c drink
2 1 [Cola]
5 1 [Tea]
4 0 []
3 2 [Beer, Cola]
6 0 []