如果我有很多家庭代表:
(parent:Person)<-[:CHILD_OF]-(child:Person {age:19})
然后查询会如何找到所有家庭中最老的孩子?
我有以下建议,但这只返回1个节点:
match (parent:Person)<--(child:Person) return child order by child.age desc limit 1
答案 0 :(得分:1)
可能可以进行优化,现在快速进行 -
match (c:Person)-[:CHILD_OF]->(p)
with p, max(c.age) as maxAge, collect(c) as children
return p,filter (x in children where x.age=maxAge)
答案 1 :(得分:0)
match (parent:Person)<--(child:Person) with parent, max(child.age) as maxAge
Match (parent)<--(child:Person) where child.age = maxAge
return *
如果他们的年龄相同,可能会有几个孩子返回,如果你想要退回一个孩子,你应该多再使用一个孩子 MAX(ID(子)) 你会有
Match (parent:Person)<--(child:Person) with parent, max(child.age) as maxAge
Match (parent)<--(child:Person) where child.age = maxAge with parent, max(id(child)) as maxId
Match (parent)<--(child:Person) where id(child) = maxId return *