基本上我想在各個節點之間進行排序並返回一個最新的屬性爲true的屬性..但如果true不存在,我應該得到具有false屬性的最新節點。例如
nodeA上 - >其財產改名值真
節點B - >其財產更名爲值假根據neo4j中的屬性值對節點進行排序
現在的情況是,有可能是節點的n個與財產更名爲爲真和假,我想只是最新的一個(節點也具有以毫秒爲單位的時間屬性),如果屬性爲true則返回true,則返回false。
有沒有什麼辦法可以用密碼查詢來實現這個功能? 謝謝
基本上我想在各個節點之間進行排序並返回一個最新的屬性爲true的屬性..但如果true不存在,我應該得到具有false屬性的最新節點。例如
nodeA上 - >其財產改名值真
節點B - >其財產更名爲值假根據neo4j中的屬性值對節點進行排序
現在的情況是,有可能是節點的n個與財產更名爲爲真和假,我想只是最新的一個(節點也具有以毫秒爲單位的時間屬性),如果屬性爲true則返回true,則返回false。
有沒有什麼辦法可以用密碼查詢來實現這個功能? 謝謝
如果我正確理解你的問題,你想要最新的節點的屬性「重命名」值爲「真」,那麼你可以先排序節點的屬性「重命名」,然後屬性「時間」降序排列,並佔據第一位,
Match somenode:Something
Return somenode
Order by somenode.renamed DESC, somenode.time DESC
limit 1
如果有與「更名爲」屬性節點的「真」,那麼第一個必須與價值的所有節點的最新一期「真值「;如果沒有值爲「true」的節點,那麼第一個節點必須是所有節點中值爲「false」的最新節點。
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