2017-08-25 82 views
1

我有具有以下性質查找其中2米範圍重疊

(n:User {valUpper:100, valLower:-100}) 
(m:User {valUpper:200, valLower: 0}) 

使用暗號節點是有可能找到的節點,如果(M)的範圍內具有重疊(N)?

這是我會在JS做了..

if max(x2, y2) - min(x1, y1) < (x2 - x1) + (y2 - y1) { 
    //Ranges Overlap 
} 

回答

1

從您的JavaScript示例使用公式,你可以做這樣的

... here you match for n and m ... 
WITH n.valUpper as x1, n.valLower as y1, m.valUpper as x2, m.valLower as y2 
RETURN apoc.coll.max([x2, y2]) - apoc.coll.min([x1, y1]) < (x2 - x1) + (y2 - y1) 

希望這有助於。

問候, 湯姆

+0

謝謝@tom我不知道apoc,看起來像一個堅實的插件:) – gk103

+0

@ gk103它是插件:-) –

2

載脂蛋白C是非常值得的選擇。只想提到非apoc方式的人不想啓用apoc。

WITH n.valUpper as x1, n.valLower as y1, m.valUpper as x2, m.valLower as y2 
RETURN 
    CASE WHEN x2 > y2 THEN x2 ELSE y2 END - 
    CASE WHEN x1 < y1 THEN x1 ELSE y1 END 
    < (x2 - x1) + (y2 - y1)