3.1.3 查詢和更新圖
Cypher語句既可用于查詢,又可用于更新圖數據。
3.1.3.1 更新語句的結構
一個Cypher查詢部分不能同時匹配和更新圖數據。每個部分要么讀取和匹配圖,要么更新它。
如果需要從圖中讀取,然后更新圖,那么該查詢隱含地包含兩個部分——第一部分是讀取,第二部分是寫入。如果查詢只是讀取,Cypher將采用惰性加載(Lazy Load),事實上并沒匹配模式,直到需要返回結果時才去實際匹配。在更新查詢語句中,所有讀取操作必須在任何寫操作發生之前完成。
當希望使用聚合數據進行過濾時,必須使用WITH將兩個讀語句部分連接在一起。第一部分做聚合,第二部分過濾來自第一部分的結果。如下所示:

下面是一個將聚合數據更新到圖中的例子:

可以盡可能多地將查詢部分鏈接在一起。
3.1.3.2 返回數據
任何查詢都可以返回數據。RETURN語句有三個子語句,分別為SKIP、LIMIT和ORDER BY。如果返回的圖元素是剛剛刪除的數據,需要注意的是這時數據的指針將不再有效,針對它們的任何操作都無法正確運行。