0

我是neo4j的新手,我有以下情况

如上图所示,我有一个节点Admin和节点Folder1, Folder2,Folder3以及其他节点组,例如FileA,FileB,FileC,FileD.

  • Admin节点与 的属性 有:access关系。qtyFolder1,Folder2 and Folder3

  • :next如上图所示,每个 Folder 节点都与各自的 File 节点有关系。

问题 :

如何编写 Cypher 查询以从这些具有最大值的文件夹节点中返回不同 的节点?FileA , FileB ,FileC,FileDqty

我试过了,但我无法得到它。

请帮助,在此先感谢

4

2 回答 2

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 是一个参数,例如{high:5}

于 2014-02-26T08:40:30.167 回答
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 的奢侈品

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 *
于 2018-04-05T17:30:25.727 回答