本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
深度巢狀結構可能會限制查詢引擎產生最佳查詢計畫的能力。為了部分緩解此問題,下列定義的模式將針對下列案例建立最佳計劃:
-
案例 1:UNWIND 與 cypher 常值清單,其中包括 NUMBER、STRING 和 BOOLEAN。
-
案例 2:UNWIND 搭配平面地圖清單,其中僅包含做為值的字元常值 (NUMBER、STRING、BOOLEAN)。
撰寫包含 UNWIND 子句的查詢時,請使用上述建議來改善效能。
案例 1 範例:
UNWIND $ids as x
MATCH(t:ticket {`~id`: x})
使用參數:
parameters={
"ids": [1, 2, 3]
}
案例 2 的範例是產生 CREATE 或 MERGE 節點清單。與其發出多個陳述式,請使用下列模式將屬性定義為一組平面化的映射:
UNWIND $props as p
CREATE(t:ticket {title: p.title, severity:p.severity})
使用參數:
parameters={
"props": [
{"title": "food poisoning", "severity": "2"},
{"title": "Simone is in office", "severity": "3"}
]
}
而不是巢狀節點物件,例如:
UNWIND $nodes as n
CREATE(t:ticket n.properties)
使用參數:
parameters={
"nodes": [
{"id": "ticket1", "properties": {"title": "food poisoning", "severity": "2"}},
{"id": "ticket2", "properties": {"title": "Simone is in office", "severity": "3"}}
]
}