在neo4j中找到连接到任何特定节点的最大权重边

find maximum weight edge connected to any specific node in neo4j

MATCH (d:domain) 
WITH COLLECT(d) AS domains
UNWIND domains AS d1
UNWIND domains AS d2
WITH d1,d2
WHERE id(d1) < id(d2) and d1.name='google'
MATCH (d1)-[r:domain_join]-(d2)

       //where r.weight is max // I want something like this (I am stuck at this line)

return d1.name,d2.name,r.weight;

我得到的输出是

我想要的输出是具有最大权重的单行

你应该可以做到:

return d1.name,d2.name,r.weight
ORDER BY r.weight DESC LIMIT 1;

我怀疑您可以简化您的查询(特别是如果您的域节点的名称 属性 上有一个索引)。顺便说一下,标签通常以大写字母开头,关系类型都是大写的。

MATCH (google:domain {name: 'google'})
MATCH (google)-[r:domain_join]-(d2:domain)
RETURN d2.name, r.weight
ORDER BY r.weight DESC LIMIT 1