我是neo4j的新手,我有以下情况
如上图所示,我有一个节点Admin
和节点Folder1, Folder2,Folder3
以及其他一组节点,如FileA,FileB,FileC,FileD
。
Admin
节点与属性:access
的关系qty
对于Folder1,Folder2 and Folder3
。
每个文件夹节点与各自的文件具有:next
的关系
节点如上图所示。
如何编写Cypher查询以从具有最大FileA , FileB ,FileC,FileD
值的这些文件夹节点返回不同 qty
节点?
我试过了,但我无法得到它。
请帮助,提前致谢
答案 0 :(得分:0)
高意味着什么?
试试这个:
MATCH (person:Person {name:"Admin"})-[r:access]->(folder)-[:next*]->(file)
WHERE r.qty > {high}
WITH file,r
ORDER r.qty DESC
RETURN distinct file
高是一个参数,例如{high:5}
答案 1 :(得分:0)
首先,使用http://console.neo4j.org/分享测试设置。
您想使用MAX聚合器。由于neo4j过滤的工作原理,设置有点奇怪。
MATCH (n)-[r:access]->()
// Reduce all items to one row, and get max quantity
WITH COLLECT(r) as r, MAX(r.qty) as maxvalue
// Unwind collected values, and cleanup variables with WITH
UNWIND r as r2
WITH r2 as r, maxvalue
// Filter rows on max
WHERE r.qty=maxvalue
// Do stuff
return *
或者,如果你有安装APOC的luxery
MATCH (n)-[r:access]->()
// get max value
WITH r, apoc.coll.max(COLLECT(r.qty)) as maxvalue
// Filter rows on max
WHERE r.qty=maxvalue
// Do stuff
return *