密码查询和AgensGraph

时间:2019-06-29 00:48:31

标签: cypher graph-databases agens-graph

以下查询仅返回vlabel。

它也应该返回elabls吗?

match 
return distinct labels;

1 个答案:

答案 0 :(得分:0)

根据“列表函数”部分的the docslabels()函数将仅返回vlabel。

labels()
返回作为参数传递的顶点的vlabel。将参数传递给label函数时,应格外小心;当您使用MATCH子句找到与模式匹配的顶点,分配变量并将该变量作为参数传递时,该顶点本身不能作为参数传递给label函数,而必须始终作为变量传递。

如果您想要边缘/关系,则文档声明使用relationships()函数:

relationships()
返回作为参数传递的路径中存在的边。将参数传递给Relationships函数时应小心;当使用MATCH子句找到与模式匹配的路径,分配变量并将该变量作为参数传递时,该路径本身不能作为参数传递给Relationships函数,而必须始终作为变量传递。与count函数一起使用时,可以找到路径中的边数。

因此,要同时列出vlabel和elabel,您将需要类似以下查询的内容(请注意,我们将生成的路径分配给p并传递给relationships函数):

MATCH p=(n)-[r]->(m)
RETURN DISTINCT labels(n), relationships(p), labels(m);

-- Example results
  labels  |               relationships               |  labels
----------+-------------------------------------------+----------
 ["part"] | [used_by[19.3][18.4,18.5]{"quantity": 1}] | ["part"]
 ["part"] | [used_by[19.4][18.5,18.6]{"quantity": 2}] | ["part"]
 ["part"] | [used_by[19.5][18.4,18.7]{"quantity": 1}] | ["part"]
(3 rows)