0
在FOREACH語句中[例如(dayX,dayY)]是否有一種簡單的方法來找出迭代的索引?如何獲取FOREACH迭代的索引
在FOREACH語句中[例如(dayX,dayY)]是否有一種簡單的方法來找出迭代的索引?如何獲取FOREACH迭代的索引
是的,你可以。
下面是一個例子查詢創建包含一個索引和第8天Day
節點:
WITH 5 AS day1, 12 AS day2
FOREACH (i IN RANGE(0, day2-day1) |
CREATE (:Day { index: i, day: day1+i }));
此查詢打印出所得到的節點:
MATCH (d:Day)
RETURN d
ORDER BY d.index;
,這裏是一個例子的結果:
+--------------------------+
| d |
+--------------------------+
| Node[54]{day:5,index:0} |
| Node[55]{day:6,index:1} |
| Node[56]{day:7,index:2} |
| Node[57]{day:8,index:3} |
| Node[58]{day:9,index:4} |
| Node[59]{day:10,index:5} |
| Node[60]{day:11,index:6} |
| Node[61]{day:12,index:7} |
+--------------------------+
FOREACH
在迭代期間不產生索引。如果你想索引你可以使用range
和UNWIND
組合是這樣的:
WITH ["some", "array", "of", "things"] AS things
UNWIND range(0,size(things)-2) AS i
// Do something for each element in the array. In this case connect two Things
MERGE (t1:Thing {name:things[i]})-[:RELATED_TO]->(t2:Thing {name:things[i+1]})
這個例子迭代計數器i
了,你可以使用索引i
數組中訪問該項目。
你的問題不清楚?請提供更多細節 –