From 9cff65856d258e4592322fb372e68e761e451586 Mon Sep 17 00:00:00 2001 From: wey-gu <1651790+wey-gu@users.noreply.github.com> Date: Thu, 25 Nov 2021 15:28:02 +0800 Subject: [PATCH] highlight on bulk edge where filtering expression close #824 --- .../7.general-query-statements/2.match.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs-2.0/3.ngql-guide/7.general-query-statements/2.match.md b/docs-2.0/3.ngql-guide/7.general-query-statements/2.match.md index d4890d8dacf..64ba769eb29 100644 --- a/docs-2.0/3.ngql-guide/7.general-query-statements/2.match.md +++ b/docs-2.0/3.ngql-guide/7.general-query-statements/2.match.md @@ -368,6 +368,30 @@ nebula> MATCH (v:player{name:"Tim Duncan"}) -[*0]-> (v2) \ +----------------------------------------------------+ ``` +!!! Note + + 如果想要通过描述多跳的边的过滤条件,比如`-[e:follow*2]->`,这时候 `e` 不再试单条边时候的数据类型了,而是一列边的符合类型,例如: + 这是错误的表达,因为`e`是一个边的列表,没有`.degree`的属性 +```ngql +nebula> MATCH p=(v:player{name:"Tim Duncan"})-[e:follow*2]->(v2) \ + WHERE e.degree > 1 \ + RETURN DISTINCT v2 AS Friends; +``` + 这是正确的表达: +```ngql +nebula> MATCH p=(v:player{name:"Tim Duncan"})-[e:follow*2]->(v2) \ + WHERE ALL(e_ in e WHERE e_.degree > 0) \ + RETURN DISTINCT v2 AS Friends; +``` + + 进一步,这是表达对多跳边的第一跳的边属性过滤的表达: + +```ngql +nebula> MATCH p=(v:player{name:"Tim Duncan"})-[e:follow*2]->(v2) \ + WHERE e[0].degree > 98 \ + RETURN DISTINCT v2 AS Friends; +``` + ### 匹配变长路径 用户可以在模式中使用`:*[minHop]..`匹配变长路径。