0

基本上我想在各个节点之间进行排序并返回一个最新的,其属性为 true .. 但如果 true 不存在,我应该得到具有 false 属性的最新节点。
例如
nodeA -> 属性重命名值为true
nodeB ->属性重命名值为false

现在的情况是,可能有 n 个节点的属性重命名truefalse,我只想要最新的一个(节点也具有毫秒格式的时间属性),如果不是 true,则属性为 true,然后是最新的 false。

有没有办法使用密码查询来实现这一点?谢谢

4

2 回答 2

1

如果我正确理解您的问题,您想要属性“重命名”值为“true”的最新节点,那么您可以先按属性“重命名”然后按属性“时间”按降序对节点进行排序,然后取第一个,

Match somenode:Something
Return somenode
Order by somenode.renamed DESC, somenode.time DESC 
limit 1

如果存在属性“renamed”值为“true”的节点,则第一个必须是所有值为“true”的节点中最新的一个;如果没有值为“true”的节点,则第一个必须是所有值为“false”的节点中最新的一个。

于 2013-10-23T13:20:31.577 回答
-1
START a=node(*) 
MATCH p=a-[*1..]->b 
WHERE ALL (x IN nodes(p) 
           WHERE x.renamed=true OR (id(x)=id(b) AND x.renamed=false)) 
RETURN p

除了最后一个节点之外的所有节点都b必须有renamed=false并且最后一个节点b必须有renamed=false

于 2013-10-27T20:33:52.390 回答