Neo4j:获取多个节点/关系属性的最小/最大值

Neo4j:获取多个节点/关系属性的最小/最大值,neo4j,cypher,Neo4j,Cypher,如何找到多个节点/关系属性的最小/最大值 我准备了以下图表: 它基本上是(U:User)-[i:invests]->(p:Project) 1) 我的财产:金额:1000 2) U的属性为:availableAmount:500 我需要较小的值1)I的属性和2)U的属性为此需要一个缩放函数,从Cypher获得的min()和max()函数是跨行工作的聚合函数,这不是这里需要的 如果已安装,则可以使用跨列表元素工作的apoc.coll.min()和apoc.coll.max(): MATCH (U:

如何找到多个节点/关系属性的最小/最大值

我准备了以下图表:

它基本上是(U:User)-[i:invests]->(p:Project)

1) 我的财产:金额:1000

2) U的属性为:availableAmount:500


我需要较小的值1)I的属性和2)U的属性

为此需要一个缩放函数,从Cypher获得的
min()
max()
函数是跨行工作的聚合函数,这不是这里需要的

如果已安装,则可以使用跨列表元素工作的
apoc.coll.min()
apoc.coll.max()

MATCH (U:User)-[i:invests]->(P:Project)
RETURN U, apoc.coll.min([i.amount, P.availableAmount]) as minValue
如果您没有APOC或不允许使用APOC,则可以使用CASE结构查找最小值:

MATCH (U:User)-[i:invests]->(P:Project)
RETURN U, CASE WHEN i.amount < P.availableAmount THEN i.amount ELSE P.availableAmount END as minValue
MATCH(U:User)-[i:invests]->(P:Project)
返回U,当i.amount