繁体   English   中英

相同类型节点之间的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,饮料和其他用户的当前迭代之间路径的可选匹配

这基于以下测试图:

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           []

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM